Ruby Minitest断言_equal失败

Ruby Minitest断言_equal失败,ruby,minitest,Ruby,Minitest,我有一个包含以下内容的文件: # frozen_string_literal: true source "https://rubygems.org" gem 'cucumber' gem 'minitest', '~> 5.10', '>= 5.10.3' gem 'minitest-focus' gem 'minitest-reporters', '~> 1.1.9' gem 'rspec' ... require 'minitest/autorun' require_r

我有一个包含以下内容的文件:

# frozen_string_literal: true
source "https://rubygems.org"

gem 'cucumber'
gem 'minitest', '~> 5.10', '>= 5.10.3'
gem 'minitest-focus'
gem 'minitest-reporters', '~> 1.1.9'
gem 'rspec'
...
require 'minitest/autorun'
require_relative './../../../../RubyProjects/mksta-common/common'

class VerifyApi < MiniTest::Test

  include Common

  def initialize(has_authorization)
    @has_authorization = has_authorization
  end

  def test_id_correct
    assert_equal(20, 20)
  end
end
一个Cucumber.env文件,其中包含要加载并需要的gems:

require 'bundler'

Bundler.require
以及包含以下内容的Ruby文件:

# frozen_string_literal: true
source "https://rubygems.org"

gem 'cucumber'
gem 'minitest', '~> 5.10', '>= 5.10.3'
gem 'minitest-focus'
gem 'minitest-reporters', '~> 1.1.9'
gem 'rspec'
...
require 'minitest/autorun'
require_relative './../../../../RubyProjects/mksta-common/common'

class VerifyApi < MiniTest::Test

  include Common

  def initialize(has_authorization)
    @has_authorization = has_authorization
  end

  def test_id_correct
    assert_equal(20, 20)
  end
end
错误发生在“self.assertions+=1”行,因此我不确定未设置“assertions”的位置


我想知道我的需求流程是否不正确,或者我是否缺少一个需求。或者Cucumber/Rspec会妨碍你?任何帮助都将不胜感激。

好吧,问题是当您初始化VerifyApi时,您没有初始化MiniTest::Test。因此,self.assertions为零。 要解决此问题,只需在initialize函数中再添加一行即可

super(name)

当然,您需要在函数中添加一个参数。

在您为
nil
调用
+
的某个地方……它不在发布的代码中,因此它必须在您没有对整个堆栈跟踪进行事后检查的代码中,以确定此错误发生的位置,然后找出哪个变量是
nil
。好消息是,您是在测试中发现这一点的,而不是在部署应用程序之后。@SimpleTime我已经在MiniTest中用错误发生的代码编辑了我的问题。