Ruby on rails 3 使用带导轨的纸轨进行测试3
我正在尝试使用Rails 3中的paper_trail v2.6.3的一个示例,方法如下。我想为一个模型写一个规范,让我检查它的版本是否在纸上,比如:Ruby on rails 3 使用带导轨的纸轨进行测试3,ruby-on-rails-3,paper-trail-gem,Ruby On Rails 3,Paper Trail Gem,我正在尝试使用Rails 3中的paper_trail v2.6.3的一个示例,方法如下。我想为一个模型写一个规范,让我检查它的版本是否在纸上,比如: it { should be_trailed } 并且应该是一个定制的rspec匹配器,它应该检查模型是否有版本控制 如何编写规范 另外,我不想还原版本。我只是想检查一下它是否有版本 我在demo_应用程序上使用它,遵循Michael Hartl的: 如果您想知道如何编写RSpec匹配器,那么文档是 如果您询问matcher应该做什么,您可以尝
it { should be_trailed }
并且应该是一个定制的rspec匹配器,它应该检查模型是否有版本控制
如何编写规范
另外,我不想还原版本。我只是想检查一下它是否有版本
我在demo_应用程序上使用它,遵循Michael Hartl的:
如果您想知道如何编写RSpec匹配器,那么文档是 如果您询问matcher应该做什么,您可以尝试检查对象是否响应paper_trail提供的方法。比如说
RSpec::Matchers.define :be_trailed do
match do |actual|
actual.respond_to?(:versions)
end
end
如果您想知道如何编写RSpec匹配器,那么文档是 如果您询问matcher应该做什么,您可以尝试检查对象是否响应paper_trail提供的方法。比如说
RSpec::Matchers.define :be_trailed do
match do |actual|
actual.respond_to?(:versions)
end
end
共享上下文
我个人喜欢通过Rspec的共享上下文测试我的模型是否包含书面记录,如下所示:
./spec/support/shared_contexts/paper_trail_contexts.rb
/规格/型号/用户规格rb
Rspec输出
我发现这比使用自定义匹配器(如be\u trailed)更清晰、更可扩展。共享上下文
我个人喜欢通过Rspec的共享上下文测试我的模型是否包含书面记录,如下所示:
./spec/support/shared_contexts/paper_trail_contexts.rb
/规格/型号/用户规格rb
Rspec输出
我发现这比使用自定义匹配器(如be_trailed)更清晰、更可扩展。在这里,您提到的actual.Response_to?:versions,我可以编写方法,如:previous_version、:next_version或给定文档中的任何其他方法,对吗?在这里,您提到actual.Response_to?:versions,我可以编写方法,比如:previous\u version、:next\u version或给定文档中的任何其他方法,对吗?
shared_context 'a PaperTrail model' do
it { should respond_to(:versions) }
# You can add other assertions here as well if you like.
end
it_behaves_like 'a PaperTrail model'
User
behaves like a PaperTrail model
should respond to #versions