0
我想创建我的测试类(LIB/calorie_form.rb)轨道4测试自定义类未初始化不断
class CalorieForm
attr_accessor :is_male, :weight, :age, :height, :physical_activity, :trainings_per_week
end
我写了下面的测试,并把它变成 测试/单位/ calorie_calculator_test.rb
require 'test/unit'
class CalorieCalculatorTest < Test::Unit::TestCase
def test_calculations
calorie_form = CalorieForm.new
calorie_form.is_male = false
calorie_form.weight = 55
calorie_form.height = 169
calorie_form.physical_activity = 1.4
calorie_form.trainings_per_week = 4
end
end
这应该是确定(此代码工作正常,当我把它变成控制器的方法),但是当我使用RubyMine的运行测试,我得到了以下错误
C:\Ruby200\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) -Itest C:/CalorieCalc/test/unit/calorie_calculator_test.rb
Testing started at 1:19 AM ...
Run options:
# Running tests:
E
Finished tests in 0.005005s, 199.8002 tests/s, 0.0000 assertions/s.
1) Error:
CalorieCalculatorTest#test_calculations:
NameError: uninitialized constant CalorieCalculatorTest::CalorieForm
C:/CalorieCalc/test/unit/calorie_calculator_test.rb:8:in `test_calculations'
1 tests, 0 assertions, 0 failures, 1 errors, 0 skips
ruby -v: ruby 2.0.0p353 (2013-11-22) [i386-mingw32]
我有这行我application.rb中
config.autoload_paths += %W(#{config.root}/lib)
- 我到底做错了什么?
- 有没有什么办法自动生成测试文件 位于lib /使用RubyMine 6的类?
UPDATE
如果我写
require 'calorie_form'
我得到
C:/CalorieCalc/test/unit/calorie_calculator_test.rb:2:in `require': cannot load such file -- calorie_form (LoadError)
而且我可以做
require_relative '../../lib/calorie_form'
或
require 'C:\CalorieCalc\lib\calorie_form.rb'
但是这两种变体都非常难看。
为什么我不能只写'require'calorie_form'?
C时工作特性2:在'require'中:无法加载这样的文件 - calorie_form(LoadError) –
也可以做 require_relative'../../lib/calorie_form'或 需要'C:\ CalorieCalc \ lib \ calorie_form.rb',但两者变体是非常丑陋的。 –
尝试从单元测试文件的顶部请求'test_helper',在测试/文件夹中创建'test_helper.rb'(如果不存在),并添加一个故意的异常,例如'raise'Loaded TestHelper''作为探测器确定正在读取文件... – SciPhi