2017-07-24 44 views
0

我的Rails 5.1,并使用默认的系统测试测试类型错误与水豚assert_text的Rails 5.1

我在一类RetreatTest下面的代码:

test "Create a new Retreat" do 
    visit retreats_url 

    click_on 'Create a new Retreat' 

    fill_in "Title", with: "Retreat Title" 
    fill_in "Tagline", with: "Retreat tagline" 
    select('Individual', from: 'Type') 

    fill_in "Description", with: "Retreat Description" 
    attach_file('Image', Rails.root.join('test', 'images', 'test-1.jpg')) 

    click_on "Submit" 

    assert_text("Retreat was successfully saved.") 
end 

我不明白为什么如果我写的,而不是assert find('.alert').has_content?('Retreat was successfully saved.')所有assert_text我的测试中通过

Error: 
RetreatsTest#test_Create_a_new_Retreat: 
TypeError: exception class/object expected 
test/system/retreats_test.rb:36:in `block in <class:RetreatsTest>' 

:我不断收到此错误。

有人可以帮助我吗?

编辑1: 在与回溯选项运行测试,我得到如下:

Error: 
    RetreatsTest#test_Create_a_new_Retreat: 
    TypeError: exception class/object expected 
    /Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:52:in `raise' 
    /Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:52:in `rescue in assert_text' 
    /Users/dhaliman/.rvm/gems/ruby-2.3.1/gems/capybara-2.14.2/lib/capybara/minitest.rb:48:in `assert_text' 
    /Users/dhaliman/Code/Workspace AVR WebApp/avr/test/system/retreats_test.rb:36:in `block in <class:RetreatsTest>' 
+0

您是否有更多的错误堆栈跟踪,所以我们可以看到哪个版本的'assert_text'被调用? –

+0

如何在系统测试中做堆栈跟踪?任何想法? – dhaliman

+0

由于这是一个错误而不是测试失败异常,因此您可以尝试使用:verbose或:backtrace选项运行测试 - 'rails test -b test' –

回答

1

升级到您目前使用2.14.2并且有最新的水豚(2.14.4)对于迷你测试2.14.3中的修复断言应该修复不正确的错误,并让它返回正确的错误(即它找不到文本)