Ruby on rails 3 使用带导轨的纸轨进行测试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应该做什么,您可以尝

我正在尝试使用Rails 3中的paper_trail v2.6.3的一个示例,方法如下。我想为一个模型写一个规范,让我检查它的版本是否在纸上,比如:

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