我有以下情况:
@wip
Scenario: Attempt to get account information of an activator without credentials
Given an activator with e-mail "dietervds@email.com" and password "testpassword" already exists
When I send a GET request to "/activators/1"
Then the response code should be 401
@wip
Scenario: Attempt to get account information of another activator then myself
Given an activator with e-mail "dietervds@email.com" and password "testpassword" already exists
And an activator with e-mail "eviltwin@email.com" and password "testpassword" already exists
And I am authenticating as "eviltwin@email.com" with "testpassword" password
When I send a GET request to "/activators/1"
Then the response code should be 401
在每个方案之前删除数据库并从模式重新创建。
“给定激活器...”的步骤将新用户插入数据库 然而!对于这两个用户来说并不总是如此。
这是步骤实施:
/**
* @Given /^an activator with e-mail "([^"]*)" and password "([^"]*)" already exists$/
*/
public function anActivatorWithEMailAndPasswordAlreadyExists($email, $password)
{
$activatorManager = $this->getContainer()->get('am.manager.activator');
#$logger = $this->getContainer()->get('logger');
#$logger->debug("Email: $email, password: $password");
$activator = $activatorManager->createActivator($email, $password);
$activatorManager->save($activator);
}
现在奇怪的是:
在最后一步中,我应该得到两个插入:一个用于dietervds,一个用于eviltwin。
我在I:
时得到两个插页我只有一次插入(对于dietervds):
我对此完全感到困惑 有什么东西显而易见吗?可能是步骤定义中的某种缓存问题? (日志记录可能会更改签名或其他内容,但不确定)
欢迎任何反馈: - )
干杯!
迪特
答案 0 :(得分:1)
这一步def是否进行ajax调用?
当我向“/ activators / 1”发送GET请求时
如果确实如此,你可以尝试在那里添加一些等待时间来给你的dom时间加载结果
当您使用按下或以下链接提交表单或者转到重定向浏览器以启动完整的请求响应周期,触发机器人等待新的dom加载时,Whens to thens工作得最好。
ajax不会以完全相同的方式发生。
如果你没有做ajax,我建议你只使用
的内置步骤defsWhen I follow "/activators/1" instead
有一种方法可以阻止yaml配置中的缓存。这是我们用于chrome的示例配置,但对于任何浏览器驱动程序都应该是相同的
default:
extensions:
Behat\MinkExtension\Extension:
base_url: https://yurwebsite.com
goutte: ~
browser_name: "googlechrome"
selenium2:
capabilities: { "browser": "googlechrome", "version": "23", "applicationCacheEnabled": false }
最后一个布尔参数为我们的浏览器缓存问题提供了技巧