gpt4 book ai didi

ruby-on-rails - 如何取消 Mocha 模拟?

转载 作者:行者123 更新时间:2023-12-04 16:36:17 24 4
gpt4 key购买 nike

我有以下 Mocha 模拟,效果很好。

在 test.rb 文件中:

setup do
Date.stubs(:today).returns(Date.new(2011, 7, 19))
Time.stubs(:now).returns(Time.new(2011,1,1,9,0))
end

问题是测试的时间安排被打破了。测试运行后,日期和时间对象仍然被模拟。(!)
Finished in -21949774.01594216 seconds.
我添加了以下内容:
teardown do
Date.unstubs(:today)
Time.unstubs(:now)
end

这将为每个测试抛出以下错误: WARNING: there is already a transaction in progress
这是去根的正确方法吗?在测试文件的末尾甚至在单元测试套件的末尾取消 stub 更好吗?

在 Rails 3.07 和 Mocha 0.9.12 中工作

谢谢。

最佳答案

我不知道这是否完全是您的问题,但这只是 unstub ,不复数。

除此之外,应该没有问题。你肯定想在每次测试(或一组测试,如果一堆测试需要 stub )之后取消 stub ,因为一旦 stub ,它就会保持 stub ,这可能会搞砸其他测试。

关于ruby-on-rails - 如何取消 Mocha 模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7392196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com