gpt4 book ai didi

ruby-on-rails - 分解您的 RSpec 测试

转载 作者:行者123 更新时间:2023-12-04 06:36:02 26 4
gpt4 key购买 nike

我的一些 Rspec 测试变得非常大(2000-5000 行)。我只是想知道是否有人曾尝试将这些测试分解为满足以下条件的多个文件:

  • 有一种命名和放置测试的系统方法(例如,方法 A-L 转到 user_spec1.rb)。
  • 您可以运行一个文件,该文件将实际运行其他文件中的其他测试。
  • 您仍然可以在文件中运行特定上下文
  • 而且,很好,RubyMine 可以很好地运行特定的测试(和所有测试)。

  • 目前,我已经成功地做到了
    #user_spec.rb
    require 'spec_helper'
    require File.expand_path("../user_spec1.rb", __FILE__)
    include UserSpec

    #user_spec1.rb
    module UserSpec do
    describe User do
    ..
    end
    end

    最佳答案

    如果您的规范变得太大,那么您的模型也可能太大——因为您在这里使用了“UserSpec”,您可以说您的用户类是“God class”。也就是说,它做得太多了。

    所以,我会把它分解成更小的类,每个类都有一个单一的责任。然后,单独测试这些类。

    您可能会发现您的 User 类知道如何执行系统中的大多数逻辑——这是一个容易陷入的陷阱,但如果您将逻辑放在一个以用户为参数的类中,则可以避免。 .另外,如果你坚定地遵循德米特法则(你的用户等级只能接触它下面的1级,但不能接触2级)。

    延伸阅读:http://blog.rubybestpractices.com/posts/gregory/055-issue-23-solid-design.html

    关于ruby-on-rails - 分解您的 RSpec 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8540986/

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