Ruby sinatra应用程序的水豚测试失败

Ruby sinatra应用程序的水豚测试失败,ruby,unit-testing,sinatra,capybara,minitest,Ruby,Unit Testing,Sinatra,Capybara,Minitest,我正在尝试使用minitest和capybara测试sinatra应用程序,但在使用capybara功能(如fill_in或visit)的所有测试中都会出现一些错误 测试指数给出: 未定义的局部变量或方法“app” 测试\创建\用户提供: 无效的表达式:.///form[@id='register'] 测试电子邮件提供的相同内容: 找不到css寄存器 测试单元登录提供: 无法填写,没有id为的文本字段、文本区域或密码字段, 找到名称或标签“电子邮件” 对可能出现的问题有什么建议吗 test.rb

我正在尝试使用minitest和capybara测试sinatra应用程序,但在使用capybara功能(如fill_in或visit)的所有测试中都会出现一些错误

测试指数给出:

未定义的局部变量或方法“app”

测试\创建\用户提供:

无效的表达式:.///form[@id='register']

测试电子邮件提供的相同内容:

找不到css寄存器

测试单元登录提供:

无法填写,没有id为的文本字段、文本区域或密码字段, 找到名称或标签“电子邮件”

对可能出现的问题有什么建议吗

test.rb 并使用capybara_minitest_规范断言响应:

page.must_have_content "Password"
page.must_have_button "Register"

我刚刚回答了你最近发布的一个关于辛特拉的问题

我认为这里的问题是一样的。尝试替换:

Capybara.app = Sinatra::Application
与:


就我个人而言,我会选择水豚而不是网鼠。

不幸的是,错误没有改变。无论是Capybara.app=Kimsin.new还是上面的代码都没有做任何更改。问题可能出在我的代码应用程序或测试中,或者版本可能不匹配。我看不出测试索引中出了什么问题,因为您没有包含断言代码。在test_create_中//formregister do中的用户应该在formregister do中-这里您似乎混淆了xpath和css样式的表达式。最后,我想你会发现水豚需要字符串参数作为选择器,所以请填写:email。。。应该填写“电子邮件”。。。等。所有测试,包括webrat,都通过了您的建议。谢谢!
page.must_have_content "Password"
page.must_have_button "Register"
Capybara.app = Sinatra::Application
Capybara.app = Kimsin