den*_*iss 5 rspec ruby-on-rails rspec2
我的一些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
Run Code Online (Sandbox Code Playgroud)
如果你的规格太大,你的模型可能太大了 - 因为你在这里使用了"UserSpec",你可以说你的用户类是" 神级 ".也就是说,它做得太多了.
所以,我会把它分解成更小的类,每个类都有一个单一的责任.然后,单独测试这些类.
您可能会发现您的User类知道如何在系统中执行大多数逻辑 - 这是一个容易陷入的陷阱,但如果您将逻辑放在以用户为参数的类中,则可以避免.此外,如果你坚持遵守demeter定律(你的用户类只能触及它下面的1级,而不是两级).
进一步阅读:http://blog.rubybestpractices.com/posts/gregory/055-issue-23-solid-design.html
| 归档时间: |
|
| 查看次数: |
1023 次 |
| 最近记录: |