【发布时间】:2015-02-20 08:10:18
【问题描述】:
我正在尝试学习如何使用 phpunit 和 laravel 进行测试。当使用phpunit 命令开始测试时,我收到一个警告:
There was 1 failure:
1) Warning
No tests found in class "PostsTest".
FAILURES!
Tests: 2, Assertions: 1, Failures:
我的测试类名和文件名匹配。我已经阅读了有关不匹配名称的其他问题。我的文件名是PostsTest.php 和我的测试文件:
class PostsTest extends ApiTester {
public function it_fetches_posts()
{
$this->times(5)->makePost();
$this->getJson('api/v1/posts');
$this->assertResponseOk();
}
private function makePost($postFields=[])
{
$post = array_merge([
'title' => $this->fake->sentence,
'content' => $this->fake->paragragraph
], $postFields);
while($this->times --)Post::create($post);
}
}
如果需要我的 ApiTester :
use Faker\Factory as Faker;
class ApiTester extends TestCase {
protected $fake;
protected $times = 1;
function __construct($faker)
{
$this->fake = Faker::create();
}
}
我不知道错误在哪里。 Laravel 或我的本地 phpunit 设置或其他任何东西。任何帮助表示赞赏。
谢谢。
【问题讨论】:
-
我已经阅读了 laravel 中的手册。我正在关注 laracasts 中的教程。我是否缺少任何其他手册?
-
我现在明白了。在 tut 视频中,我看到函数名称是这样使用的,并且它正在工作。我没有猜到函数名称应该是“testItFetchesPosts”。我以为这只是一个示例名称。