开发者

Using machinist instead of fixtures

开发者 https://www.devze.com 2023-01-30 06:05 出处:网络
In my Rails 3 application, I have a User model with the following fields name: string email: string children: has_many association to another model

In my Rails 3 application, I have a User model with the following fields

   name: string
   email: string
   children: has_many association to another model

I'm using machinist开发者_开发知识库 2 to generate mock data, its blueprint looks like

User.blueprint do
   name { 'user{sn}' }
   email { '{object.name}@domain.com' }
end

And User's Unit Test:

require 'test_helper'

class UserTest < ActiveSupport::TestCase
  should have_many( :children )
  should validate_uniqueness_of( :email )
  should_not allow_value("blah").for(:email)
  should_not allow_value("b lah").for(:email)
  should allow_value("a@b.com").for(:email)
  should allow_value("asdf@asdf.com").for(:email)
end

When I generated the user model, it created a fixture file. My understanding is that when I run rake, Rails uses that fixture file to generate objects used in the tests. Which is not what I want. I want Rails to use machinist's blueprints just a seamlessly as it uses the fixtures file.

Is there a way to do this? Is there some way to tell rails that it needs to use blueprints instead of fixtures?


Add this to config/application.rb:

config.generators do |g|
  g.fixture_replacement :machinist
end

You can safely trash the old fixtures folder too, unless you want to keep them obviously!

0

精彩评论

暂无评论...
验证码 换一张
取 消