首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在RSpec中测试模块

在RSpec中测试模块
EN

Stack Overflow用户
提问于 2009-10-09 10:09:43
回答 10查看 76.6K关注 0票数 182

在RSpec中测试模块的最佳实践是什么?我有一些模块包含在几个模型中,现在我只是对每个模型都有重复的测试(几乎没有区别)。有没有办法把它弄干?

EN

回答 10

Stack Overflow用户

发布于 2012-05-29 23:50:30

rad =>

代码语言:javascript
复制
let(:dummy_class) { Class.new { include ModuleToBeTested } }

或者,您可以使用您的模块扩展测试类:

代码语言:javascript
复制
let(:dummy_class) { Class.new { extend ModuleToBeTested } }

使用'let‘比使用实例变量来定义之前的(:each)中的虚拟类要好。

When to use RSpec let()?

票数 225
EN

Stack Overflow用户

发布于 2009-10-09 23:20:06

迈克说的话。下面是一个简单的例子:

模块代码...

代码语言:javascript
复制
module Say
  def hello
    "hello"
  end
end

规范片段...

代码语言:javascript
复制
class DummyClass
end

before(:each) do
  @dummy_class = DummyClass.new
  @dummy_class.extend(Say)
end

it "get hello string" do
  expect(@dummy_class.hello).to eq "hello"
end
票数 110
EN

Stack Overflow用户

发布于 2013-01-16 02:55:34

对于可以单独测试或通过模拟类进行测试的模块,我喜欢以下内容:

模块:

代码语言:javascript
复制
module MyModule
  def hallo
    "hallo"
  end
end

规格:

代码语言:javascript
复制
describe MyModule do
  include MyModule

  it { hallo.should == "hallo" }
end

劫持嵌套的示例组似乎是错误的,但我喜欢它的简洁性。有什么想法吗?

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1542945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档