ruby-on-rails - 为什么我的测试代码有错误,但手动访问页面却没有错误?

标签 ruby-on-rails testing integration-testing runtime-error

我有一个基于 Rails Tutorial 的网站。我向我的用户模型添加了一个名为“show_extras”的 bool 属性,并将其复选框添加到“用户配置文件”页面。现在,当我的测试到达提及“show_extras”属性的代码(例如“编辑用户”页面)时,它们会失败。当我手动访问该页面时,我没有收到任何错误。怎么了? (我尝试重置一些东西,但这没有帮助。)

这是导致错误的代码行之一(在编辑页面上):

<%= f.check_box :show_extras %>

这是错误消息:

AuthenticationPages signin page for non-signed-in try visit protected page after signin should render right page
Failure/Error: click_button "Sign in"
ActionView::Template::Error:
undefined method `show_extras' for #User:0...
# ./app/views/users/edit.html.erb...

最佳答案

发生这种情况的原因可能是测试数据库当前在 User 表中没有 show_extras 列,而开发数据库有。

您最近做过rake db:test:prepare吗?您可能必须运行它才能在数据库中创建新列。

关于ruby-on-rails - 为什么我的测试代码有错误,但手动访问页面却没有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16654779/

相关文章:

java - Selenium 不会单击页面上的第一个复选框

testing - 上传文件时 Watin 测试挂起应用程序

java - Spring Boot与Spock集成测试: stubbed method returns null

ruby-on-rails - ruby中的异步http请求

ruby-on-rails - 如何获取 Rails 4 activerecord 插入 sql?

ruby-on-rails - rails : elegantly reduce duplication when using json to create objects

java - 如何使用 gradle 对多个嵌入式服务器运行 spring-boot 集成测试

javascript - Ajax回调不响应

ios - 如何在 XCode iOS 模拟器上安装 .ipa 文件

java - 如何向 Gradle 添加新的源集?