我正在建立一个教育服务,这是一个相当过程繁重的申请。我有很多用户操作触发各种操作,有些是现在的,有些是未来的。
例如,当一名学生完成一天的一堂课时,应该发生以下情况:
所有这些触发器都内置到各个对象的观察者中,并且使用Sidekiq延迟执行。
折磨我的是测试,以及当我推动某件事时我可能会打破某些东西的偏执狂。在过去,我做了很多断言和验证检查,它们是足够的。对于这个项目,我认为这是不够的,考虑到上升的复杂性。
因此,我想实施一个测试框架,但在阅读了各种备选方案(Rspec、Cucumber)之后,考虑到我相当具体的需要,特别是对观察员和预定活动的需要,现在还不清楚我应该投入什么努力。
对于哪种方法和框架最合适,有什么建议和建议?可能会在不久的将来救我一命;)
这并不重要,但我使用的是Rails 3.2 / Mongoid。如果能用的话很乐意升级。
发布于 2013-09-04 07:22:43
测试可能是一个非常主观的主题,不同的方法取决于手头的问题。
我想说的是,考虑到您对端到端过程测试的主要需求(通常称为验收测试),您肯定应该检查一些类似黄瓜或牛排的东西。这两种方式都允许您驱动无头浏览器并运行您的进程。这种测试将捕获任何大的显示停止,并允许您修改系统,并通知您的更改所造成的中断。
单元测试虽然非常重要,并且应该始终与验收测试并行使用,但它不是用于进行端到端测试,而是主要用于隔离地测试特定方法的输出。
一种常用的模式称为测试驱动开发(TDD)。在这里,您首先在“外部”测试循环中编写您的验收测试,然后将您的应用程序与单元测试一起编码,作为“内部”测试循环的一部分。这样做的想法是,当您在内循环中完成代码时,外部循环也应该通过,并且您应该已经建立了足够的测试覆盖率,从而相信代码的任何未来更改都将通过/失败测试,这取决于是否仍然满足了最初的需求。
最后,测试套件应该像你的应用程序那样成长和改变。您可能会发现,您的测试套件的整个部分可以(也可能应该)根据系统需求的变化而重写。
发布于 2013-09-04 03:50:46
单元测试是必须的。您可以使用Rspec或TestUnit。它会给你至少80%的信心。
为控制器规范启用“呈现视图”。您将更快地捕获语法错误和简单的逻辑错误,因为way.There是测试侧翼作业的方法。看看这。
一旦你确信你有足够的单元测试,你就可以开始考虑使用黄瓜/水豚或rspec/capybara进行特性测试。
https://stackoverflow.com/questions/18604300
复制相似问题