2012-03-16 87 views
4

我正在尝试在新项目上设置自动化集成测试。使用的堆栈是:
玩!框架
SOAP的Web服务
关系数据库使用Play Framework进行集成测试,无需使用灯具

因为我想写的集成测试,我需要管理哪些数据是在我的数据库,这通常是用集成在游戏框架赛程进行。但是因为我不使用Play框架的模型,所以这是不可能的。
另外,如果您有关于测试数据集维护的提示?另外,如果我正在对我的所有堆栈进行集成测试,我应该(理想情况下)在Play项目之外执行它们,然后我将放弃Play测试工具的好处。我应该让他们在Play项目中吗?

如果我创建一个新谟只是这些测试,你有没有对工具的任何建议使用:硒的HtmlUnit,...

感谢由您的帮助!

回答

1

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

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

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

灯具也非常方便,如果您有效地使用它们,它们非常有用。我的意思是通过有效的方式,你可以分割你的数据,即users.yml,products.yml等,并加载删除他们独立,这给你灵活性在你的测试。

到目前为止,如果您不确信使用灯具比您可以考虑模拟数据,但我不喜欢集成测试中的模拟数据。这里是嘲讽测试数据的一个例子,这是游戏框架之外;)

Mockito

说实话,我还没有有任何机会与图书馆玩,但如果你有时间似乎值得给予一尝试一下。

我希望这个答案能帮助你。

+0

嗨,谢谢你的回答,但我不确定我是否清楚:我不使用Fixtures的原因是因为我没有访问实体!所以我需要一个解决方法,当然是DBUnit。 – mpetitdant 2012-03-19 09:59:48

+0

如果你没有访问实体,你甚至可以在测试中使用memdb,这将解决你的问题..我希望.. – huzeyfe 2012-03-19 10:06:11

+0

例如,在你的application.conf文件中,你可以设置这个属性:%test .db.url = JDBC:H2:MEM:播放; MODE = MYSQL; LOCK_MODE = 0 – huzeyfe 2012-03-19 10:12:56

相关问题