1

我是 FactoryGirl 的忠实粉丝,但从未理解过 " .build_stubbed" 方法,并希望将 stubbing/mocking 合并到我的 TDD 中。有人可以帮助我了解我可以用 FactoryGirl 做什么样的存根吗?我应该开始使用 Mocha 或其他类似的 GEM 来处理模拟/存根,还是 Rails 4 默认 MiniTest 中包含这些?

4

1 回答 1

3

factory girl 命令build_stubbed意味着对象已创建(及其所有关联对象)但没有对象插入到数据库中。如果您想要更快的测试并且不需要在数据库中拥有对象,您应该使用它。

这意味着该命令不必对存根或模拟做太多事情。

我自己只有使用 Mocha 的经验,可以说它很容易用于 stubbing 和 mocking。

用于存根命令(例如对象 Person)

    person = Person.new
    person.stubs(:name).returns('Robert')

上面的示例创建了一个人的实例,并删除了方法名称以始终返回“罗伯特”。

用于模拟相同的命令

    person = Person.new
    person.expects(:name).returns('Robert')

上面的方法与存根方法相同。唯一的区别是,如果方法名称没有被准确地调用一次,那么现在测试会失败。

于 2013-07-22T09:11:12.520 回答