メソッドが定義されているクラスに対してrequire
があります。私はattr_accessor
でそれを持っています。私は完全な超過すればかなり確信しています。しかし、どこにどのように置いても、私はこのエラーを取り除くことができませんNoMethodError: undefined method "next_node" for nil:NilClass
。私はTDDを使用するためにminitest
を実行しており、この時点でスーパー・ハングアップしています。私はここにlist.head.next_node
リンクリストクラスの初期化エラー
require './lib/node'
class LinkedList
attr_accessor :head,
:next_node
def initialize(head = nil)
@head = head
@next_node = next_node
end
def append(sound)
#@next_node = nil
@head = Node.new(sound)
sound
end
end
をテストするとき、私はnil
値を返すようにしようとしています
EDITは私のテスト方法
def test_does_head_move_value_to_next_node
list = LinkedList.new
list.head.next_node
# assert_nil list.head.next_node
end
すべて未定義のメソッドエラーを修正しますか?私は今、この一歩に集中しています。私の次のステップは 'assert_nil list.head.next_node'です。戻り値として' nil'を与えるようにしているからです。また、 'pry'セッションで呼び出されると、私が探している' nil'結果が得られます。私はエラーをクリアするためにここのコードにそれを含めることはできません。 –
"すべてが"あなたの理解を修正しようとしていました。もし 'list.head'が' nil'なら 'list.head.next_node'を評価することはできません。 ( 'list.head&.next_node'では可能ですが、そのような場合は' nil'と評価されます) – Amadan
OK私は覚えていると思います。私はおそらくコメントする前にそれで眠っていたはずです。私はお詫び申し上げます:P。テストで*実行しないで*実行したときにコードが書き込まれる方法は無限ループになります。 –