首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails中流程流程的自动化测试

Rails中流程流程的自动化测试
EN

Stack Overflow用户
提问于 2013-09-04 02:00:12
回答 2查看 107关注 0票数 2

我正在建立一个教育服务,这是一个相当过程繁重的申请。我有很多用户操作触发各种操作,有些是现在的,有些是未来的。

例如,当一名学生完成一天的一堂课时,应该发生以下情况:

  • 更新他的用户模块记录的进度计数
  • 检查他是否完成了一个特定的模块,并将他推进到下一个模块(这反过来触发了更多的操作)
  • 触发当前发送给其他用户的电子邮件
  • 触发未来的电子邮件给自己(正在进行的教训计划)
  • 创建其他对象的范围(教师对待办事项进行分级)
  • 任何其他特例事件

所有这些触发器都内置到各个对象的观察者中,并且使用Sidekiq延迟执行。

折磨我的是测试,以及当我推动某件事时我可能会打破某些东西的偏执狂。在过去,我做了很多断言和验证检查,它们是足够的。对于这个项目,我认为这是不够的,考虑到上升的复杂性。

因此,我想实施一个测试框架,但在阅读了各种备选方案(Rspec、Cucumber)之后,考虑到我相当具体的需要,特别是对观察员和预定活动的需要,现在还不清楚我应该投入什么努力。

对于哪种方法和框架最合适,有什么建议和建议?可能会在不久的将来救我一命;)

这并不重要,但我使用的是Rails 3.2 / Mongoid。如果能用的话很乐意升级。

EN

回答 2

Stack Overflow用户

发布于 2013-09-04 07:22:43

测试可能是一个非常主观的主题,不同的方法取决于手头的问题。

我想说的是,考虑到您对端到端过程测试的主要需求(通常称为验收测试),您肯定应该检查一些类似黄瓜或牛排的东西。这两种方式都允许您驱动无头浏览器并运行您的进程。这种测试将捕获任何大的显示停止,并允许您修改系统,并通知您的更改所造成的中断。

单元测试虽然非常重要,并且应该始终与验收测试并行使用,但它不是用于进行端到端测试,而是主要用于隔离地测试特定方法的输出。

一种常用的模式称为测试驱动开发(TDD)。在这里,您首先在“外部”测试循环中编写您的验收测试,然后将您的应用程序与单元测试一起编码,作为“内部”测试循环的一部分。这样做的想法是,当您在内循环中完成代码时,外部循环也应该通过,并且您应该已经建立了足够的测试覆盖率,从而相信代码的任何未来更改都将通过/失败测试,这取决于是否仍然满足了最初的需求。

最后,测试套件应该像你的应用程序那样成长和改变。您可能会发现,您的测试套件的整个部分可以(也可能应该)根据系统需求的变化而重写。

票数 1
EN

Stack Overflow用户

发布于 2013-09-04 03:50:46

单元测试是必须的。您可以使用Rspec或TestUnit。它会给你至少80%的信心。

为控制器规范启用“呈现视图”。您将更快地捕获语法错误和简单的逻辑错误,因为way.There是测试侧翼作业的方法。看看

一旦你确信你有足够的单元测试,你就可以开始考虑使用黄瓜/水豚或rspec/capybara进行特性测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18604300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档