我正在使用Codeception来测试3个API:
第一个API返回刚插入数据库的注释的ID。我想将评论ID传递给第二种测试方法。
在PHPUnit中我会通过从第一个方法返回commentId并使用@depends注释第二个方法来做到这一点,但在Codeception中@depends不会从第一个方法发送返回的值。
有没有办法在不将两个测试放在同一个方法中的情况下发送值?
我刚开始使用Codeception,所以我可能会错过一些有价值的信息。
答案 0 :(得分:1)
Codeception在同一个内存空间中运行所有测试,因此您只需使用 GLOBAL 关键字:
/**
* @test1
*/
public function testOne(){
global $hello;
$hello = "Hello!";
}
/**
* @test2
*/
public function testTwo(){
global $hello;
$this->assertEquals("Hello!", $hello);
}
答案 1 :(得分:0)
这很好用,非常简单。请注意,测试中不应包含的功能应为protected
protected $var1;
protected $var2;
public function test1(AcceptanceTester $I){
$var1 = "Variable1";
$var2 = "Variable2";
$this->pass_variable($var1,$var2);
}
public function test2(AcceptanceTester $I){
$I->doSomethingWithPassedVars($this->var1, $this->var2);
}
protected function pass_variable($var1 = "", $var2 = ""){
$this->var1 = $var1;
$this->var2 = $var2;
}