Ruby 访问模型时,未加载rspec文件中的Rails会出现错误“NameError:uninitialized constant”
Rails 4.0.2和Ruby 2.0.0 我正在使用watir webdriver和rspec来测试我的web应用程序。我想选择列表中存在关联模型的最后一项。基本上,页面上的模型是Category,在categories列表中,我想选择最后一个与之关联的工具。一个类别有许多工具。我的规范文件:Ruby 访问模型时,未加载rspec文件中的Rails会出现错误“NameError:uninitialized constant”,ruby,ruby-on-rails-4,rspec,watir-webdriver,Ruby,Ruby On Rails 4,Rspec,Watir Webdriver,Rails 4.0.2和Ruby 2.0.0 我正在使用watir webdriver和rspec来测试我的web应用程序。我想选择列表中存在关联模型的最后一项。基本上,页面上的模型是Category,在categories列表中,我想选择最后一个与之关联的工具。一个类别有许多工具。我的规范文件: require 'watir' require 'watir-webdriver' browser = Watir::Browser.new browser.window.maximize RSp
require 'watir'
require 'watir-webdriver'
browser = Watir::Browser.new
browser.window.maximize
RSpec.configure do |config|
config.before(:each) { @browser = browser }
config.after(:suite) { browser.close unless browser.nil? }
end
url = 'localhost:3000'
serial = Time.now
describe 'it should log in and CRUD menu items' do
it 'should log in' do
@browser.goto url
@browser.text_field(id: 'username').set Logins::user
@browser.text_field(id: 'password').set Logins::password(url)
@browser.button(:text, 'Login').click
@browser.link(:text, 'Menu Settings').click
end
it 'should not delete a category with tools still associated with it' do
category_name = Category.joins(:tools).where(true).order(name: :asc).last
@browser.link(:text, category_name).click
@browser.h4(class: 'tool_list')
@browser.link(text: 'Delete').click
@browser.driver.switch_to.alert.accept
@browser.p(text: 'You can not destroy this menu item until it is empty').present?
end
end
给出错误的行是:
category_name = Category.joins(:tools).where(true).order(name: :asc).last
不知道为什么我不能在我的spec文件中进行简单的查询。我想我错过了一些非常明显的东西
编辑
我将rspec版本从2更新到3,并运行:
rails generate rspec:install
因为我缺少spec/rails\u helper.rb文件。仍然会出现同样的错误 问题不在Watir中,但您可能需要文件说明如何定义您的模型 我认为,也许,你必须需要所需的宝石;与活动记录一样,
这是配置和初始化文件。我也在考虑这些问题。我没有任何常规的Rspec测试。我认为他们会失败。但它不应该加载整个rails应用程序以便我可以测试它吗?在spec_helper.rb中会发生这种情况吗?