当我填充预期的输出并调用rake时,我会遇到这个问题。我的设置或代码有问题吗?
约瑟夫斯-MacBook:koans jj$ rake /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby path_to_enlightenment.rb AboutClasses#test_inside_a_method_self_refers_to_the_containing_object已经损坏了你的业力。 子曰:尚未觉悟。我感觉到挫折感。不要害怕寻求帮助。 你想要的答案..。预期的“填写我”等于 请仔细考虑下列守则: /Users/jj/Downloads/koans/about_classes.rb:162:in `test_inside_a_method_self_refers_to_the_containing_object‘ 请记住,沉默有时是最好的回答你的道路到目前为止,...................................X______________ 203/282
有关守则是:
class Dog7
attr_reader :name
def initialize(initial_name)
@name = initial_name
end
def get_self
self
end
def to_s
@name
end
def inspect
"<Dog named '#{name}'>"
end
end
def test_inside_a_method_self_refers_to_the_containing_object
fido = Dog7.new("Fido")
fidos_self = fido.get_self
assert_equal __, fidos_self
end我把填好的assest_equal
def test_inside_a_method_self_refers_to_the_containing_object
fido = Dog7.new("Fido")
fidos_self = fido.get_self
assert_equal <Dog named 'Fido'>, fidos_self
end它会爆炸。
/Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in
require': /Users/jtacuyan/Downloads/koans/about_classes.rb:162: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '(' (SyntaxError) assert_equal <Dog named 'Fido'>, fidos_self ^ /Users/jj/Downloads/koans/about_classes.rb:162: syntax error, unexpected ',' assert_equal <Dog named 'Fido'>, fidos_self ^ from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in在任务中要求“from path_to_enlightenment.rb:28:in<main>' rake aborted! Command failed with status (1): [/System/Library/Frameworks/Ruby.framework/...] /Users/jj/Downloads/koans/Rakefile:10:inblock : TOP =>默认=>测试”(参见使用-- trace运行任务的完整跟踪)
不过,我可以在irb上好好执行。
irb(main):016:0> fido = Dog7.new("Fido")
=> <Dog named 'Fido'>
irb(main):017:0> fido
=> <Dog named 'Fido'>
irb(main):018:0> fido.name
=> "Fido"
irb(main):019:0> fido.get_self
=> <Dog named 'Fido'>
irb(main):020:0> fidos_self = fido.get_self
=> <Dog named 'Fido'>
irb(main):021:0> fidos_self
=> <Dog named 'Fido'>发布于 2015-09-21 01:13:40
您忘记了断言代码中的“。
assert_equal "<Dog named 'Fido'>", fidos_self更新
您应该断言fidos_self引用了自身,即实例化的Dog7:fido。
assert_equal fido, fidos_self这正是这个测试应该做的。
发布于 2018-10-24 21:29:18
错误是类型对象错误;第一个元素是字符串类型,第二个是Dog7类型。解决方案是适当地匹配类型。
检查下列各项的返回值:
fidos_self.is_a?(String)
fidos_self.is_a?(Dog7)
fidos.is_a?(Dog7)
fidos_self
fidoshttps://stackoverflow.com/questions/32666702
复制相似问题