我有一個按預期工作的紅寶石模塊。然而,當我試圖耙測試,它失敗的:紅寶石模塊工作,但耙測試失敗
Error: test_directions(TestNAME) : NoMethodError: undefined method 'each' for "north":String
/Users/antony1/Documents/Ruby/projects/ex48/lib/lexicon.rb:20:in 'scan'
/Users/antony1/Documents/Ruby/projects/ex48/tests/test_ex48.rb:7:in 'test_directions'
4: class TestNAME < Test::Unit::TestCase
5:
6: def test_directions()
=> 7: assert_equal(Lexicon.scan("north"),[['direction', 'north']])
8: result = Lexicon.scan("north south east")
9:
10: assert_equal(result, [['direction', 'north'],
class Lexicon
@sentence = []
@direction = ['north', 'south', 'east', 'west', 'down', 'up', 'left', 'right', 'back']
def self.scan(words)
words.each {|word|
recognize = false
if @direction.include?(word) == true
direction = ['direction', word]
@sentence.push(direction)
recognize = true
end
}
end
end
這裏是我的測試文件:
require './lib/lexicon.rb'
require "test/unit"
class TestNAME < Test::Unit::TestCase
def test_directions()
assert_equal(Lexicon.scan("north"),[['direction', 'north']])
result = Lexicon.scan("north south east")
assert_equal(result, [['direction', 'north'],
['direction', 'south'],
['direction', 'east']])
end
end
我有不同的陣列和條件五個額外的測試,所有六個測試失敗耙測試。但是,代碼本身按預期工作。
我編輯的測試文件發送數組,而不是字符串:
require './lib/lexicon.rb'
require "test/unit"
class TestNAME < Test::Unit::TestCase
def test_directions()
assert_equal(Lexicon.scan(["north"]),[['direction', 'north']])
result = Lexicon.scan(["north", "south", "east"])
assert_equal(result, [['direction', 'north'],
['direction', 'south'],
['direction', 'east']])
end
end
仍然失敗rake test
上:
F
===============================================================================
>
Failure: test_directions(TestNAME)
/Users/antony1/Documents/Ruby/projects/ex48/tests/test_ex48.rb:7:in
`test_directions'
4: class TestNAME < Test::Unit::TestCase
5:
6: def test_directions() => 7: assert_equal(Lexicon.scan(["north"]),[['direction', 'north']])
8: result = Lexicon.scan(["north", "south", "east"])
9:
10: assert_equal(result, [['direction', 'north'], <nil> expected but was <[["direction", "north"]]>
diff: ? nil ? [["directio ", "north"]]
===============================================================================
Finished in 0.009885 seconds.
1 tests, 1 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions,
0 notifications 0% passed
即使沒有測試文件直接運行代碼,也會出現該錯誤。 –
你的'.scan'方法不會返回任何因此你看到'nil'的東西。再次檢查我的答案。 –