当我使用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]
我如何缩小造成这种情况的原因?它使测试输出变得丑陋:)
答案 0 :(得分:2)
我有一个非常类似的问题,我得到的错误是:
undefined|0|TypeError: 'undefined' is not an object
最后,为了弄清楚它来自何处,我逐一从application.js
删除了js文件,直到错误消失。一旦我缩小了它,我发现是,实际上是一个未定义的变量,它没有引起任何问题,因此所有测试都通过了。
可能有更好的方法来做到这一点,不是很确定,但这种方法对我有用。祝你好运。