Вам не нужно присваивать 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 );
}
Если testOne
изменяет тест таким образом, что testTwo
зависит от изменений, вы можете сделать:
/*
* @dataProvider tagProvider
*/
function testOne( Tag $tag ) {
$this->assertSomething( $tag );
return $tag;
}
/*
* @depends testOne
*/
function testTwo( Tag $tag ) {
$this->assertSomething( $tag );
}
И тогда testTwo
будет использовать возвращенный $tag
из testOne
вместе с любыми изменениями состояния, внесенными в него в testOne
.