我正在为SOA系统编写功能测试,因此需要从前端测试后端子系统。
这是一个标准的CRUD系统。我有一个测试,测试可以创建一个对象,它会向我返回新对象的ID。在随后的测试中,我想编辑然后删除该对象,但是phpunit似乎每次都重新实例化测试类,因此我丢失了实例变量。
我怎样才能做到这一点?不能选择在体系结构中的每台服务器上运行功能测试。
最佳答案
在测试之间传递内容的一种方法是使用 @depends
批注
public function testCreate() {
//...
return $id;
}
/**
* @depends testCreate
*/
public function testDelete($id) {
// use $id
}
如果您这样做的话,如果创建无效,那么将跳过“删除”测试。
因此,如果服务根本无法正常工作,而不是许多失败的测试,您只会得到一个错误。
如果您不想这样做,或者由于某种原因而与您的情况不匹配,那么静态类变量也可以作为一种选择,但是您应该确保自己确定自己绝对需要它们:)
关于php - 有什么方法可以在phpunit测试之间保留实例变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6735783/