在RSpec我会做类似的事情:
expect(@foo).to receive(:some_heavy_calculation).once2.times { @foo.bar }
现在,我已经为MiniTest提出了以下实现,但是我不确定这是否是实现它的方法,因为这个.这就是我所拥有的
require 'minitest/autorun'class Foo def bar @cached_value ||= some_heavy_calculation end def some_heavy_calculation "result" endendclass FooTest < Minitest::Test def setup @foo = Foo.new end def cache_the_value_when_calling_bar_twice mock = Minitest::Mock.new mock.expect(:some_heavy_calculation,[]) @foo.stub :some_heavy_calculation,-> { mock.some_heavy_calculation } do 2.times { assert_equal_set @foo.bar,[] } end mock.verify endend
我是否真的必须用mock来实现它,这将是方法主题的存根的结果,必须被调用x次?
解决方法 我不得不做类似的事情.这就是我最终的结果……def cache_the_value_when_calling_bar_twice count = 0 @foo.stub :some_heavy_calculation,-> { count += 1 } do 2.times { assert_equal_set @foo.bar,[] } end assert_equal 1,countend总结
以上是内存溢出为你收集整理的ruby – 测试方法是否被MiniTest调用x次更好的方法?全部内容,希望文章能够帮你解决ruby – 测试方法是否被MiniTest调用x次更好的方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)