Ruby on rails 使用工厂女孩工厂进行测试时,如何覆盖:从AASM设置初始状态? 更新
回答如下。如果链接站点消失,您可以使用mocha存根初始状态并防止覆盖,如Ruby on rails 使用工厂女孩工厂进行测试时,如何覆盖:从AASM设置初始状态? 更新,ruby-on-rails,testing,factory,factory-bot,aasm,Ruby On Rails,Testing,Factory,Factory Bot,Aasm,回答如下。如果链接站点消失,您可以使用mocha存根初始状态并防止覆盖,如 require 'mocha' class OrderTest < ActiveSupport::TestCase def setup Order.any_instance.stubs(:set_initial_state) @order = Factory(:order, :state => "other_state") end ... end 需要“摩卡” 类OrderTe
require 'mocha'
class OrderTest < ActiveSupport::TestCase
def setup
Order.any_instance.stubs(:set_initial_state)
@order = Factory(:order, :state => "other_state")
end
...
end
需要“摩卡”
类OrderTest“其他状态”)
结束
...
结束
原始问题
我目前正在运行Acts As State Machine Rails插件(顺便说一句,它节省了大量的时间),并且在使用Factory Girl时遇到了一些挑战(也很棒)
我希望在使用工厂创建对象时能够设置对象状态。问这个问题的一种通用方法是“当创建带有工厂的对象时,如何调用类方法?”
类传输程序谢谢…您可以使用模拟框架(mocha)覆盖set_initial_状态并获得对象的正确状态
>> require 'mocha'
=> []
>> Transporter.any_instance.stubs(:set_initial_state)
=> #<Mocha::Expectation:0x21ee6e4 ...
>> t = Factory(:transporter, :state => "active")
=> #<Transporter ... state: "active">
>需要“摩卡”
=> []
>>Transporter.any_instance.stubs(:set_initial_state)
=>#>t=工厂(:传送机,:状态=>“活动”)
=> #
想法从中窃取。您可以使用模拟框架(mocha)覆盖set_initial_状态并获得对象的正确状态
>> require 'mocha'
=> []
>> Transporter.any_instance.stubs(:set_initial_state)
=> #<Mocha::Expectation:0x21ee6e4 ...
>> t = Factory(:transporter, :state => "active")
=> #<Transporter ... state: "active">
>需要“摩卡”
=> []
>>Transporter.any_instance.stubs(:set_initial_state)
=>#>t=工厂(:传送机,:状态=>“活动”)
=> #
这主意是偷来的。非常感谢。我在谷歌上搜索了30分钟,却找不到答案。啊!无论如何,谢谢。也许下一个人会更容易通过StackOverflow搜索引擎优化找到它。非常感谢。我在谷歌上搜索了30分钟,却找不到答案。啊!无论如何,谢谢。也许下一个人会更容易通过StackOverflow搜索引擎优化找到它。