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

最后为了弄清楚它是从哪里来的,我把js文件application.js一个一个的去掉,直到错误消失。缩小范围后,我发现实际上存在一个未定义的变量,它没有引起任何问题,因此所有测试都通过了。

可能有更好的方法来做到这一点,不太确定,但这种方法对我有用。祝你好运。

于 2012-08-08T23:54:59.893 回答