我的问题是:我是如何在CakePHP中使用Pest测试MVC部分的,例如:当我使用PHPUnit时,我会输入:
公共类ItemTest扩展TestCase
它会显示出我想测试的东西,但是如何处理害虫呢?
(我在考试中真的是新手,所以我接受任何能让我进步的东西:)
发布于 2021-05-26 13:56:27
在已安装的害虫之后,您只需遵循它的语法和文档,删除所有OOP代码,只需使用it()即可。文件名将是相同的。这是CakePHP文档中的一个示例:
class ArticlesTableTest extends TestCase
{
public $fixtures = ['app.Articles'];
public function setUp()
{
parent::setUp();
$this->Articles = TableRegistry::getTableLocator()->get('Articles');
}
public function testFindPublished()
{
$query = $this->Articles->find('published');
$this->assertInstanceOf('Cake\ORM\Query', $query);
$result = $query->enableHydration(false)->toArray();
$expected = [
['id' => 1, 'title' => 'First Article'],
['id' => 2, 'title' => 'Second Article'],
['id' => 3, 'title' => 'Third Article']
];
$this->assertEquals($expected, $result);
}
}有了害虫,它将成为:
beforeEach(function () {
$this->Articles = TableRegistry::getTableLocator()->get('Articles');
});
test('findPublished', function () {
$query = $this->Articles->find('published');
expect($query)->toBeInstanceOf('Cake\ORM\Query');
$result = $query->enableHydration(false)->toArray();
$expected = [
['id' => 1, 'title' => 'First Article'],
['id' => 2, 'title' => 'Second Article'],
['id' => 3, 'title' => 'Third Article']
];
expect($result)->toBe($expected);
});注意,toBeInstanceOf()和toBe()是可用有害生物期望的一部分。
最后,不使用$ ./vendor/bin/phpunit运行测试套件,而是使用$ ./vendor/bin/pest运行测试套件。
https://stackoverflow.com/questions/67705903
复制相似问题