我的一些Rspec测试已经变得非常大(2000-5000行)。我只是想知道是否有人尝试将这些测试分解为多个符合以下条件的文件:
目前,我已经成功完成了
#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类知道如何执行系统中的大多数逻辑-这是一个容易陷入的陷阱,但是如果您将逻辑放在将用户作为参数的类中,则可以避免这种情况。同样,如果您坚定地遵守demeter的定律(您的用户类别只能触摸其下一级,但不能达到二级)。
扩展阅读:http://blog.rubybestpractices.com/posts/gregory/055-issue-23-solid-design.html
关于ruby-on-rails - 分解您的RSpec测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8540986/