有没有一种方法可以在2个Cest测试之间共享变量?

时间:2019-09-12 13:41:35

标签: php automated-tests codeception

我需要在某个地方存储变量的值,并在其他测试中使用它们。有什么办法吗?

这是php上的代码接收。

我可以制作一些xml文档并将其存储,然后在其他测试中加载它。但这并不是我想要的。

感谢答案

2 个答案:

答案 0 :(得分:1)

4个月后,我找到了解决方案。这种测试是不好的。 这创建了对先前测试的依赖。 最好使用步骤/页面对象+继承和代码接收数据提供程序。 1个文件= 1个测试

答案 1 :(得分:0)

我实现了创建具有一些属性的BaseCest类,这些属性将在扩展它的类上共享。看起来像:

class BaseCest
{

    protected $token;

    public function _before(ApiTester $I)
    {
        $this->token = $GLOBALS['token'] ?? null;
    }
}

在您的AuthCest上:

class AuthCest extends BaseCest
{

    public function loginSuccess(ApiTester $I)
    {
        global $token;
        # your tests go here
        $token = $I->grabDataFromResponseByJsonPath('$meta.token')[0];
    }

对于以后的测试,只需致电$this->token 附言:请记住使用Array.IndexOf来组织测试订单