ruby - 有没有办法在 Test::Unit 中撤消 any_instance 的摩卡 stub

标签 ruby testing mocking stub ruby-mocha

很像this question ,我也在使用 Ryan Bates 的 nifty_scaffold。它具有使用 Mocha 的 any_instance 的理想方面。在 Controller 后面的模型对象中强制进入“无效”状态的方法。

与我链接到的问题不同,我没有使用 RSpec,而是使用 Test::Unit。这意味着那里的两个以 RSpec 为中心的解决方案对我不起作用。

是否有通用的(即:与 Test::Unit 一起使用)删除 any_instance stub 的方法?我认为它导致我的测试出现错误,我想验证这一点。

最佳答案

碰巧,Mocha 0.10.0 允许 unstubbing on any_instance() .

str = "Not Stubbed!"
String.any_instance.stubs(:to_s).returns("Stubbed!")
puts str.to_s   # "Stubbed!"
String.any_instance.unstub(:to_s)
puts str.to_s   # "Not Stubbed!"

关于ruby - 有没有办法在 Test::Unit 中撤消 any_instance 的摩卡 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894331/

相关文章:

ruby-on-rails - Rails - 需要多少个 Controller ?

oracle - 如何验证空值 - oracle etl 测试?

c# - 在 Moq 中模拟 is 运算符

ruby - 在不缩进的情况下将 rake 任务添加到 namespace ?

ruby - FireWatir 文本字段集 : Very Slow

ruby-on-rails - Ruby on Rails,重命名模型后未初始化的常量

unit-testing - 如何将TestNG测试结果分配给用例?

unit-testing - 在独立包中测试 ServiceProvider?

java - 方法不被 mock

c# - 我可以撤消 NSubstitute 的 Returns() 替换而不重新创建模拟吗?