Mat*_*att 3 php testing phpunit unit-testing
我想在setUp函数中使用一个具有不同参数的对象运行一堆测试.
我该怎么做呢?我尝试使用@dataProvider,但这不适用于setUp我很快发现..
这是我想要做的事情(使用@dataProvider):
/*
* @dataProvider provider
*/
function setUp($namespace, $args) {
$this->tag = new Tag($namespace, $args);
}
function provider() {
return array(
array('hello', array()),
array('world', array())
);
}
function testOne() {
}
function testTwo() {
}
Run Code Online (Sandbox Code Playgroud)
结果是testOne()和testTwo()针对具有命名空间"hello"的对象和具有命名空间"world"的对象运行
任何帮助将不胜感激!
谢谢,马特
Gor*_*don 10
如果它不适合测试,则不必将SUT分配给TestCase实例的成员变量.只需在提供程序中创建新的Tag实例,然后将它们传递给测试函数
/**
* Provides different test Tag instances
*/
function tagProvider() {
return array(
array( new Tag( 'hello', array() ) ),
array( new Tag( 'world', array() ) )
);
}
/*
* @dataProvider tagProvider
*/
function testOne( Tag $tag ) {
$this->assertSomething( $tag );
}
Run Code Online (Sandbox Code Playgroud)
如果testOne以一种testTwo取决于更改的方式更改测试,您可以执行以下操作:
/*
* @dataProvider tagProvider
*/
function testOne( Tag $tag ) {
$this->assertSomething( $tag );
return $tag;
}
/*
* @depends testOne
*/
function testTwo( Tag $tag ) {
$this->assertSomething( $tag );
}
Run Code Online (Sandbox Code Playgroud)
然后testTwo将使用返回的$tagfrom testOne,以及对其进行的任何状态更改testOne.
| 归档时间: |
|
| 查看次数: |
1359 次 |
| 最近记录: |