Ví dụ: tác vụ trong test1
lưu trữ dữ liệu bên ngoài * mà test2
sau đó thực hiện xác nhận, nhưng tearDown
sẽ xóa dữ liệu đó do đó vi phạm test2
. Không thể xóa bộ nhớ cache khỏi tearDown
vì các thử nghiệm khác phụ thuộc vào nó. Câu hỏi này đặt ra là có cách bỏ qua thiết lập/teardown giữa các trường hợp phụ thuộc trong khi vẫn duy trì chức năng của @depends
(bỏ qua kiểm tra thứ hai nếu thử nghiệm đầu tiên thất bại thay vì kiểm tra lần thứ hai thất bại).Có thể sử dụng PHPUnit @depends mà không cần gọi tearDown và thiết lập giữa các trường hợp phụ thuộc không?
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());
}
* Chúng tôi sẽ gọi các kiểm tra tích hợp này vì chúng tương tác với hệ thống bên ngoài.
Tôi không nghĩ rằng điều này sẽ làm việc như mong đợi nếu bạn có test3 và test1 không thành công, vì is_dependency không được đặt lại thành false. –