gpt4 book ai didi

ruby-on-rails - 使用 rspec 最佳实践进行 Rails View / Controller 测试

转载 作者:行者123 更新时间:2023-11-28 19:46:49 28 4
gpt4 key购买 nike

对于 Controller 测试,Rails 建议检查 HTTP 响应、身份验证、分配、 session 和闪存消息等内容。然而,在我现在使用的应用程序中,我看到了很多使用 response.body.should have_tag() 的 Rspec 测试,据我所知,它非常适合 View 测试。

我想知道的是:

是否存在与这种不理想的测试方式相关的相当大的性能/其他类型的损失?

最佳答案

如果您在 Controller 中渲染 View ,这将使您的 Controller 测试花费更多时间。这完全取决于您是否认为值得测试 View 元素的存在(这往往会使您的测试更加脆弱)。如果这样做,那么在 Controller 规范中进行操作会更容易,因为您不必编写单独的 View 规范文件。

如果你想在你的 View 上测试很多东西,那么你可能想要编写单独的 View 规范。分离 View 规范可能会使您的测试套件运行的总时间增加。但是,出于调试目的,可以清楚地知道 View 中的问题与分离出来的 Controller 中是否有问题。

我怀疑大多数 Rails 程序员不编写 View 规范。相反,他们可能依赖于他们的集成测试(Capybara +/- Cucumber)来测试他们的观点。但是,集成测试比单元测试花费更多时间。 RSpec 书为编写单独的 View 规范提供了以下论点:

View specs provide us with an opportunity to discover APIs that we need from the controllers and models. This is not that valuable when the APIs are following the most standard conventions. The value increases, however, as we stray from them....

The only way to really get a feel for the benefits of them [view tests] is to learn to write them well. And only once you really understand how they fit in the flow are you going to be able to make well-grounded decisions about if and when to use them.

关于ruby-on-rails - 使用 rspec 最佳实践进行 Rails View / Controller 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6340315/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com