私は2つのコントローラーを持っています。それらの最初のパスは controller/news.php で、2 番目は controller/admin/news.php です。各コントローラーのルートがあります。
controller/admin/news.php については、
Route::set('news-admin', 'admin/news(/)', array('start' => '\d+'))
->defaults(array(
'directory' => 'admin',
'controller' => 'news',
'action' => 'index',
'start' => 0,
));
controller/news.php の場合:
Route::set('news', 'news(/)', array('start' => '\d+'))
->defaults(array(
'controller' => 'news',
'action' => 'index',
'start' => 0,
));
ブラウザを使用すると、すべて正常に動作します。私が電話すると
$response = Request::factory('/news')->execute()
unittest でルーティングし、テストを実行します。しかし、私が
$response = Request::factory('admin/news')->execute()
次のメッセージしか来ない
PHPUnit 3.7.8 by Sebastian Bergmann.
Configuration read from /home/mydir/Projects/www/kohsite/application/tests/phpunit.xml
いくつかの実験の後、サブフォルダーに配置されたコントローラーの「ディレクトリ」がルートに含まれていることをテストできないことがわかりました。
以下に私のphpunit.xmlを示しました
<phpunit bootstrap="bootstrap.php" colors="true">
<testsuite name="ApplicationTestSuite">
<directory>./classes</directory>
</testsuite>
<filter>
<whitelist>
<directory suffix=".php">../tests</directory>
<exclude>
<directory suffix="*">../cache</directory>
<directory suffix="*">../config</directory>
<directory suffix="*">../logs</directory>
<directory suffix=".php">../views</directory>
<file>../bootstrap.php</file>
</exclude>
</whitelist>
</filter>
</phpunit>