用于测试环境的Behat / Mink策略

时间:2014-02-21 11:11:45

标签: php functional-testing mink

我有一个关于如何实现behat / mink功能测试的问题。 在我的网络应用程序中,我有用户可以访问一些数据表,如果他们有所需的凭据(即没有访问/只读/写)。

我希望能够通过behat / mink测试所有可能的上下文。 问题是这种测试的最佳实践是什么? 一些开发者告诉我,我必须为我想要使用的每种类型的用户创建一个场景。然后,我将不得不使用我在其他测试中创建的用户。 但我对这个想法并不是很满意:我相信它引入了我的测试之间的耦合。如果创建用户的测试失败,那么检查该数据表对该特定用户的访问的测试也将失败。

所以,我相信我可以使用一些灯具:在测试我的应用之前,我运行一个脚本,将插入我需要的所有配置文件。我将有一些专门用于创建用户的测试,我将使用fixture来检查是否允许特定用户访问特定的数据表。 与此解决方案相对应的是,我将不得不维护固定装置。

你有任何建议/想法吗?

1 个答案:

答案 0 :(得分:1)

嗨user3333860(用户名为XD),

我不是测试方面的专家,现在,我更喜欢ruby / rspec,但我个人认为这两种解决方案都很好并且都在使用。

使用功能创建用户: 如果您创建用户的测试失败,则可能意味着您的用户创建重构也搞砸了。 所以其他测试失败的事实似乎并不是我的缺点。但我确实理解您不希望在测试之间进行耦合。 重点是,您的测试是以静态顺序运行还是随机运行(即:rspec并不总是以相同的顺序启动测试)并且您准备好在不同的功能中多次运行相同的测试,以便您的其他测试可以顺利完成。

使用灯具: 那么它也是一个很好的流行解决方案(事实上,我使用的解决方案),你已经确定了你必须维护的事实。

最后,我只使用工具帮助像FactoryGirl那样帮助你维护对象模板(这里是它的PHP版本)。 https://github.com/breerly/factory-girl-php

希望我帮助你解决困境。