Behat禁用响应功能

时间:2015-03-10 15:03:23

标签: php tdd bdd behat

我目前在屏幕上的给定断点处出现/消失的behat +响应功能有点困难。

首先要创建标签来过滤设备的功能。 喜欢 @iphone或@mobile等等。

如果您在具有多屏幕尺寸/方向的多个设备上进行测试,这将变得非常混乱。 然后我们最终得到: @ iphone5c_hor @ iphone5c_vert @ iphone5s_hor @ iphone5s_vert @samsung ..._ vert

我的第二次尝试是使用最小宽度标记标记要素,例如min-width:700并使用功能上下文和webdriver来确定我当前的浏览器是否支持我尝试执行的功能。 这一直到现在为止:

/**
 * @BeforeFeature
 *
 * @param \Behat\Behat\Hook\Scope\BeforeFeatureScope|BeforeScenarioScope $scope
 */
public function prepareForTheScenario(BeforeScenarioScope $scope)
{
 if (!$this->checkWindowWidth($scope)) {
 // TODO: skip scenario here
 }
}

有没有人对这些动态测试有任何经验,我是否采取了完全错误的方式,如果不是,我怎么能做到这一点呢?

2 个答案:

答案 0 :(得分:1)

我通过创建支持我需求的Behat-Extension来解决这个问题。 (https://github.com/2bepublished/BehatResponsiveFeaturesExtension

答案 1 :(得分:0)

我有类似的问题,不得不设置浏览器窗口大小来摆脱我的问题。我想知道是否this helps you(请检查)。

我做的是:

只需将窗口大小设置为更大的值,以便在测试时菜单不会被删除。您可以根据需要将屏幕尺寸从1024X768更改为其他内容。

#symfony/src/Site/CommonBundle/Features/Context/FeatureContext.php

/**
 * @BeforeStep
 */
public function beforeStep()
{
    $this->getSession()->resizeWindow(1024, 768, 'current');
}