使用 JUnit 作为验收测试框架
好吧,所以我为一家近年来公开采用敏捷实践进行开发的公司工作。我们的单元测试和代码质量正在提高。我们仍在努力的一个领域是在自动化验收测试领域找到最适合我们的东西。我们希望采用我们格式良好的用户故事,并使用这些故事以测试驱动的方式驱动代码。这也将为我们提供每个用户情景的验收级别测试,然后我们可以自动化。
到目前为止,我们已经尝试了Fit,Fitnesse和Selenium。每个都有其优点,但我们也有真正的问题。有了Fit和Fitte,我们不禁觉得它们使事情变得过于复杂,并且我们在使用它们时遇到了许多技术问题。该企业尚未完全购买这些工具,并且并非一直特别热衷于维护脚本(并且不是表格样式的忠实粉丝)。硒真的很好,但速度很慢,依赖于实时数据和资源。
我们现在考虑的一种方法是使用 JUnit 框架来提供类似的功能。与其使用 JUnit 测试一小部分工作单元,为什么不使用它来编写测试(使用 JUnit 框架)来覆盖应用程序的接受级别范围呢?即,采用一个新故事(“作为用户,我希望看到我的策略的基本详细信息...”),并在JUnit中编写一个测试,该测试在策略详细信息链接的入口点开始执行应用程序代码,但涵盖了所有代码和逻辑,一直到存根数据访问层,然后返回到转发到应用程序中的下一页, 断言用户应在该页面上看到哪些数据。
在我看来,这具有以下优点:
- 简单(无需其他框架)
- 无需努力与我们的持续集成构建服务器集成(因为它已经处理了我们的 JUnit 测试)
- 团队中已经存在完整的技能(毕竟它只是一个JUnit测试)
缺点是:
- 减少客户参与(尽管他们首先大量参与编写用户故事,从中编写验收测试)
- 也许更难理解(或理解)JUnit类中的用户故事和验收标准与自由文本规范ala Fit或Fitite
所以,我的问题是,你有没有试过这种方法?有没有考虑过?你有什么想法?你喜欢和不喜欢这种方法的什么?最后,请仅提及替代框架,如果你能说出为什么你喜欢或不喜欢它们而不是这种方法。