Rails:unit testingbefore_create?
我试图测试一个字段是通过回调正确生成的,但我无法弄清楚这个。
album.rb
before_create :generate_permalink private def generate_permalink @title = album.downcase.gsub(/\W/, '_') @artist = artist.downcase.gsub(/\W/, '_') self.permalink = @artist + "-" + @title end
album_test.rb
test "should return a proper permalink" do album = Album.new(:artist=>'Dead Weathers', :album=>'Primary Colours') album.save assert_equal "dead_weathers-primary_colours", album.permalink end
但这不起作用,因为如果保存, album.permalink
将不会返回该值。
有没有办法测试before_create
? 我应该在控制器级别这样做吗?
我发现这篇博文可能对你很感兴趣。
简而言之,它提到您可以使用send方法作为参数来调用回调。 在这种情况下,您可以使用强制相册调用before_create回调
album.send(:before_create)