使用Play Framework进行集成测试,无需使用灯具

时间:2012-03-16 15:50:09

标签: playframework integration-testing

我正在尝试在新项目上设置自动集成测试。使用过的堆栈是:
玩!框架
SOAP Web服务
关系数据库

由于我想编写集成测试,我需要管理数据库中的数据,这通常通过集成在play框架中的Fixtures来完成。但由于我不使用Play框架的模型,这是不可能的。
另外,如果您有关于测试数据集维护的提示?

另外,如果我正在对我的所有堆栈进行集成测试,我应该(理想情况下)在Play项目之外执行它们,然后我将失去play的测试工具的好处。我应该将它们保留在Play项目中吗?

如果我为这些测试创建一个新的项目,请对您使用的工具提出任何建议:selenium,htmlunit,...

感谢提前帮助!

1 个答案:

答案 0 :(得分:1)

测试是软件生命周期中非常关键的部分,但它总是被低估或忽略。在一般情况下,建议单元测试不应该依赖任何数据或数据库,但集成测试有点不同,并且主要需要足够的数据集。

理想情况下,对于集成测试,应该有一个集成服务器,它具有适当的数据库和足够的数据。如果你没有集成服务器,Play Framework中的灯具是在测试之前获得适当数据的最简单方法。

在Play Framework中有三种类型的测试。单元和功能测试是JUnit测试,Selenium测试也称为验收测试。所有这些概念实际上都在Play Frameworks核心模型之外,除了一些非常方便的食谱。所以,说实话,我无法理解使用这种结构的担忧。例如,您可以使用Selenium本机语法或使用#{selenium /}标记..

灯具也很方便,如果你有效地使用它们,它们非常有用。我的意思是通过高效率,你可以分割你的数据,即users.yml,products.yml等,并加载删除它们,这为你提供了测试的灵活性。

到目前为止,如果您不相信使用灯具而不是考虑模拟数据,但我不喜欢集成测试中的模拟数据。以下是模拟测试数据的示例,这不在Play Framework中;)

Mockito

说实话,我没有机会和图书馆一起玩,但如果你有时间看似值得尝试一下。

我希望这个答案可以帮助你。