未初始化的常量MiniTest ::测试错误

时间:2017-07-27 14:22:52

标签: ruby-on-rails ruby unit-testing testing

我正在尝试使用Minitest。我收到以下错误:

`const_missing': uninitialized constant MiniTest::Test (NameError)

这是我的主要代码文件:

class BmiCalc

    def initialize(weight, height)
        @weight = weight;
        @height = height;
    end

    def bmi
        kgweight = @weight * 0.4535;
        meterheight = @height * 0.01;
        bmivalue = kgweight/(meterheight * meterheight);
        return bmivalue;
    end

end

print "Please Enter your Weight in lbs: ";
weight = gets.to_f;

print "Please Enter your Height in cm: ";
height = gets.to_f;

bmiCalc = BmiCalc.new(weight, height);
answer = bmiCalc.bmi;

printf("You have a BMI of #{'%.2f' % answer} \n");

这是我的MiniTest文件:

require 'minitest/autorun'
require_relative "bmicalc.rb"

class TestBmi < Minitest::Test

    def setup
        @bmicalc = BmiCalc.new(190, 250);
    end

    def test_answers
        assert_equal 31.40581717451523, @bmicalc.bmi;
    end

end

首先,当我在测试文件中调用它时,我不明白它为什么要求我提供输入。我已经实例化了一个示例类,所以它为什么要求输入。

其次,我不确定我是否理解错误或其性质。我正在尝试按照本教程:http://blog.teamtreehouse.com/short-introduction-minitest

1 个答案:

答案 0 :(得分:1)

  

当我在测试文件中调用它时,我不明白为什么要求我输入

因为在您的测试文件中需要"bmicalc.rb",它会运行其中的所有代码。包括你的打印和获取行。

  

我不确定我是否理解错误或其性质

你可能没有引起足够的重视?它是Minitest::Test,而不是Minitest::test