0

我在 Rails 2.3.16 上使用 Fabrication gem v-2.5.0,但是在运行单元测试用例时出现以下错误:

下面是代码片段:

第一个案例

Fabricate(:some_modal) 
Fabrication::MisplacedFabricateError: # from /Users/user_xyz/.rvm/gems/ree-1.8.7-        2011.03@project/gems/fabrication-2.5.0/lib/fabrication.rb:51:in `Fabricate' from (irb):3

第二种情况

Fabricate(:some_other_modal)
SyntaxError: /Users/user_xyz/.rvm/gems/ree-1.8.7-2011.03@project/gems/fabrication-2.5.0/lib/fabrication/generator/active_record.rb:8: syntax error, unexpected ':', expecting ')' ...ttributes, without_protection: true)

有人可以帮我解决这些问题。

模态类:

  class ErrorCode
      attr_accessor :mappings
      has_many :error_code_mappings
  end

制造商:

Fabricator(:error_code) do
  application_id 77
  error_code_mappings(:count => 3) { |error_code, i| Fabricate.build(:error_code_mapping,      :error_code => Fabricate.build(:error_code, :code => error_code.code + i))}
end

单元测试文件:

require 'test_helper'

class ErrorCodeTest < ActiveSupport::TestCase
  context "ErrorCode" do
    setup do
      @error_code = Fabricate.build(:error_code)
      assert(@error_code.valid?)
    end
   should "have setter for mapping attribute" do
      assert_respond_to(@error_code, :mappings=)
   end
end
4

1 回答 1

1

制造要求Ruby 1.9和更高版本。根据给定的代码片段,当前使用的 ruby​​ 版本是REE 1.8.7.

升级你的 ruby​​ 版本,然后你就可以让它工作了!

于 2013-07-22T13:10:55.057 回答