微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Oro 中覆盖 Behat 测试功能上下文?

如何解决如何在 Oro 中覆盖 Behat 测试功能上下文?

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

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

解决方法

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

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

中重写 OroForm 元素的类

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。