0

这是我的类,它返回参数的乘法

class NetAssetValue

def calculate_net_asset_value(number_of_shares, price)

    number_of_shares * price
  end

end

这是我的测试

require 'net_asset_value'

require 'test/unit'

class NetAssetValueTest  < Test::Unit::TestCase

  def setup

    @asset = NetAssetValue.new

  end


  def test_calculate_net_asset_value_for_a_symbol

    assert_equal(100, @asset.calculate_net_asset_value(20,5))

  end

end

我正在使用 SimpleCov 0.7.1。覆盖率报告说,虽然方法中的一行被覆盖,但它没有被覆盖。

它说覆盖率为 66.67% 和线

number_of_shares * 价格

未涵盖但是当我在 RubyMine 中调试并在该行上放置一个断点时,它被击中。

需要帮助。谢谢你。

4

1 回答 1

1

您不能从内部使用 Simplecov,Rake::TestTask因为该任务在单独的进程中运行测试。请参阅https://github.com/colszowka/simplecov/issues/88

编辑

澄清一下:您当然可以通过使用 Rakefile 来使用 SimpleCov,但您不能SimpleCov.start在 Rakefile 中启动 () 它。您需要在测试中这样做,例如在您的测试助手中。请记住,SimpleCov.start必须在需要您的生产代码之前调用它。

于 2013-09-29T19:53:39.673 回答