1

我已经更新了 Oro 应用程序中的登录表单,因此现在 behat 测试无法使用“假设我以 AmandaRCole@example.org 买家身份登录”登录到应用程序。

问题在于,在此功能上下文 (\Oro\Bundle\ApplicationBundle\Tests\Behat\Context\CommerceMainContext) 中,它会搜索“电子邮件地址”和“密码”表单输入,但是这些表单输入现在有另一个名称。我怎样才能根据我们的需要覆盖这个上下文,或者我怎样才能改变方法来使测试变得绿色?

4

1 回答 1

2

在OroMainContext中实现的登录步骤通过在每个测试套件中注入的配置
隐式或显式(例如OroUserBundle 套件) 。 选择器,并且在方法中被硬编码。behat.yml
_username_password_submitloginAsUserWithPassword

您可以通过 BehatExtension 在所有 behat 套件中将 OroMainContext 替换为您的继承者,请参阅Behat\Testwork\ServiceContainer\Extension,或者您可以在那里重写Oro\Bundle\FormBundle\Tests\Behat\Element\OroForm并执行您的肮脏 hack,因为此类将填充表单。不要忘记重写OroFormbehat.yml 中的元素类

我猜,正确的方法是创建一个登录名,扩展名OroForm应该用于OroMainContext. 此表单将具有fill接受两个参数的方法loginpassword. 在这种情况下,您将只需要重写这个微小的元素来更改流程。但是,我也猜想,要做到这一点还有很长的路要走。

于 2021-02-21T20:29:33.617 回答