ruby – 测试方法是否被MiniTest调用x次更好的方法?

ruby – 测试方法是否被MiniTest调用x次更好的方法?,第1张

概述今天我开始介绍minitest的一些基本实现,最后想出一个方法测试一个类的方法是否被调用两次. 在RSpec我会做类似的事情: expect(@foo).to receive(:some_heavy_calculation).once2.times { @foo.bar } 现在,我已经为MiniTest提出了以下实现,但是我不确定这是否是实现它的方法,因为这个.这就是我所拥有的 requir 今天我开始介绍minitest的一些基本实现,最后想出一个方法来测试一个类的方法是否被调用两次.

在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次更好的方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1276602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存