替换用于集成测试的rails控制器测试应始终保持到db?

问题描述 投票:1回答:1

我发现Rails集成测试与测试流程相关,我对使用集成测试替换控制器测试(在rails 5中已弃用)的行业标准有一些疑问。

通常我们有微小的控制器,我们获取参数,调用正确的协作者并准备响应,通过直接在控制器对象上模拟协作者很容易测试它。

我担心将每个控制器测试迁移到持久化db的集成测试的开销。这种情况的标准是什么?

当测试一个路线/动作而不是完整的流程时,标准是什么?

我们怎样才能取代这个?:

@controller.stubs(:authenticate).returns(true)
ruby-on-rails integration-testing ruby-on-rails-5
1个回答
1
投票

集成测试旨在模仿真实用户。它们旨在完整地测试整个应用程序。

意见因这意味着什么不同。对我来说,这意味着你应该完全避免抄袭/嘲笑。没有一件事被抄写或嘲笑,一切都完整执行。这意味着我编写的每个集成测试都会经过输入用户名和密码的实际身份验证过程。有些步骤是多余的,是的。

集成测试比单元/控制器测试慢。切断认证步骤可能不会为您节省足够的时间来改变长期(没有双关语)。

© www.soinside.com 2019 - 2024. All rights reserved.