首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Pest在CakePHP中测试

如何使用Pest在CakePHP中测试
EN

Stack Overflow用户
提问于 2021-05-26 13:26:40
回答 1查看 189关注 0票数 0

我的问题是:我是如何在CakePHP中使用Pest测试MVC部分的,例如:当我使用PHPUnit时,我会输入:

公共类ItemTest扩展TestCase

它会显示出我想测试的东西,但是如何处理害虫呢?

(我在考试中真的是新手,所以我接受任何能让我进步的东西:)

EN

回答 1

Stack Overflow用户

发布于 2021-05-26 13:56:27

已安装的害虫之后,您只需遵循它的语法和文档,删除所有OOP代码,只需使用it()即可。文件名将是相同的。这是CakePHP文档中的一个示例:

代码语言:javascript
复制
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);
    }
}

有了害虫,它将成为:

代码语言:javascript
复制
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运行测试套件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67705903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档