我正在寻找与测试流程相关的Rails集成测试,并且对于用集成测试替换控制器测试(在rails 5中不推荐)的行业标准有一些疑问。
通常我们有小型控制器,在这里我们获得参数,调用正确的协作者并准备响应,通过直接在控制器对象上模拟协作者来测试它是很容易的。
我担心将每个控制器测试迁移到持久化db的集成测试的开销。这个案子的标准是什么?
当只测试一个路由/操作而不是一个完整的流程时,标准是什么?
我们怎样才能取代这个?:
@controller.stubs(:authenticate).returns(true)
发布于 2017-12-27 15:40:42
集成测试的目的是模仿真实用户。它们是用来测试整个应用程序的。
对于这意味着什么,意见各不相同。对我来说,这意味着你应该完全避免固执/嘲弄。没有一件东西被短截或嘲弄,所有的东西都被完整地执行了。这意味着我编写的每个集成测试都要经过输入用户名和密码的实际身份验证过程。有些步骤是多余的,是的。
集成测试比单元/控制器测试更慢。删除身份验证步骤可能不会为您节省足够的时间来改变长期运行(不需要双关语)。
https://stackoverflow.com/questions/47994240
复制相似问题