使用Behat和Mink测试Symfony2的注册系统

时间:2012-07-31 13:14:17

标签: symfony tdd bdd behat mink

我的问题与Symfony2中某些应用程序的测试有关。我使用Behat和Mink编写测试,我在注册系统测试方面遇到了一些问题。

我想在用户提交注册表单后查看电子邮件,然后按照此电子邮件中的激活链接进行操作。

我找到了一个关于电子邮件测试的简短教程:
http://docs.behat.org/cookbook/using_the_profiler_with_minkbundle.html

本教程中的解决方案只有在symfony的配置文件中将“intercept_redirects”设置为“true”时才有效,但我已经进行了一些测试,我需要将此变量保留为“false”,所以我的问题是......是否可以临时更改此值,仅用于一次测试或是否必须将此值更改为“true”然后更新所有测试?

您如何测试您的注册系统,以及如何为它们编写测试?

1 个答案:

答案 0 :(得分:1)

尝试使用MinkRedirectContext中的CommonContexts。它允许您停止方案的自动重定向并检查URL:

Given I do not follow redirects
 When I ...
 Then I should be redirected to "/thank-you"

你也可以通过自己调用 followRedirects()手动完成:

$this->getSession()->getDriver()->getClient()->followRedirects(false);