Che*_*Toy 3 php testing phpunit unit-testing
我正在开发一个API,我在编写一些测试用例时遇到了麻烦.我已经编写了一组通用测试用例来测试所有实体.这些包括一般操作,如创建,修改和删除.
/**
* @dataProvider provideCreateData
* @depends LoginTest::testLogin
*/
public function testCreate
/**
* @dataProvider provideModifyData
* @depends testCreate
*/
function testModify
Run Code Online (Sandbox Code Playgroud)
数据提供程序提供了一个API实体列表及其各自的属性,测试动态测试所有实体,而无需我们在将来发生更改时必须主要测试.
上面目前工作正常,但我无法集成其他所需的硬编码测试,例如搜索函数不遵循一般模式.显然我不能在没有现有实体的情况下测试find函数,因此find测试需要在创建测试之后运行,我在这方面遇到了麻烦.我试过用:
/**
* @depends GeneralTest::testCreate
*/
public function testFind() {}
Run Code Online (Sandbox Code Playgroud)
这不起作用,测试没有运行,而是没有明显的原因被跳过.但是,如果我删除依赖项,则运行测试,但是我不能再保证数据库中将存在实体.
我觉得我错过了一些明显的东西,或者我误解了一些重要的概念.
消费者测试将被忽略有几个原因.
如果你真的需要,你应该只使用@depends.您应该努力让每个测试方法测试特定的执行路径.如果您认为需要这种依赖关系,则需要配置一个测试套件,以便控制测试的顺序.
https://phpunit.de/manual/3.7/en/organizing-tests.html#organizing-tests.xml-configuration
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |