1

Capybara/webkit との統合テストを実行すると、次のエラー メッセージが表示されます。

undefined|36|TypeError: Result of expression 'node' [undefined] is not an object.

ただし、それによってテストが失敗するわけではなく、常に発生するとは限りません。発生すると、テストの同じポイント (最終アサーションの直前) で発生するようです。

テスト:

it "does something with things" do
  #....
  within('#dialog_box') do
    click_button 'Save'
  end
  puts 'after within'
  page.should have_content(thing_attrs[:name]) 
  puts 'after assertion'
end

最終出力:

after within
undefined|36|TypeError: Result of expression 'node' [undefined] is not an object.
after assertion
  does something with things [pass]

これを引き起こしているものを絞り込むにはどうすればよいですか?それはテスト出力を醜くします:)

4

1 に答える 1

2

非常によく似た問題がありました。エラーは次のとおりです。

undefined|0|TypeError: 'undefined' is not an object

最後に、どこから来たのかを突き止めるためにapplication.js、エラーが消えるまで js ファイルを 1 つずつ削除しました。絞り込むと、実際に未定義の変数があり、問題を引き起こしていないため、すべてのテストに合格していることがわかりました。

これを行うためのより良い方法があるかもしれませんが、確かではありませんが、このアプローチは私にとってはうまくいきました. 幸運を祈ります。

于 2012-08-08T23:54:59.893 に答える