例如,操作 intest1
将数据存储在外部*,test2
然后执行断言,但tearDown
删除该数据,从而破坏test2
. tearDown
由于其他测试依赖于它,因此无法删除缓存删除。这个问题是询问是否有一种方法可以在依赖案例之间跳过 setUp/tearDown 的同时保持其功能@depends
(如果第一个测试失败而不是第二个测试失败,则跳过第二个测试)。
public function tearDown() {
// delete cache
}
// verify the expected data was retrieved from an uncached source
public function test1() {
$sut = new SystemUnderTest();
$data = $sut->getDataAndCache();
$this->assertEquals('expected', $data);
return $sut;
}
// verify the expected data was cached
/** @depends test1 */
public function test2($sut) {
$this->assertEquals('expected', $sut->getCache());
}
*我们将这些称为集成测试,因为它们与外部系统交互。