我必须为我的一个功能列表页面编写集成测试用例,该功能索引方法具有如下代码
def index
@food_categories = current_user.food_categories
end
现在,当我试图为此编写一个测试用例时,它抛出了一个错误
'undefined method features for nil class' because it can not get the current user
现在我要做的是在下面的beforeach语句中编写登录过程,然后为features列表页面编写测试用例
您能告诉我如何获得当前用户吗?
仅供参考,我曾使用Desive gem,并与Rspec一起处理集成测试用例
这是我的规格文件,这是我的食物类别规格.rb
更新:您混淆了功能测试和集成测试。集成测试不使用get
,因为没有要测试的控制器操作,而必须使用visit
(一些url)。然后,您必须检查页面的内容,而不是响应代码(后者用于功能测试)。它可能看起来像:
visit '/food_categories'
page.should have_content 'Eggs'
page.should have_content 'Fats and oils'
如果你需要功能测试,这里有一个例子:
# spec/controllers/your_controller_spec.rb
describe YourController do
before do
@user = FactoryGirl.create(:user)
sign_in @user
end
describe "GET index" do
before do
get :index
end
it "is successful" do
response.should be_success
end
it "assings user features" do
assigns(:features).should == @user.features
end
end
end
# spec/spec_helper.rb
RSpec.configure do |config|
#...
config.include Devise::TestHelpers, :type => :controller
end
我已经在我的Rails4应用程序中实现了JQuery文件上传。当我从浏览器手动测试文件上传时,文件上传工作正常,但测试失败。 下面是我上传JQuery文件的规范:需要'spec\u helper' 我使用rspec2、水豚2和恶灵来实现这个特性规范。
我最近开始使用QUnit来单元测试我的JavaScript,我有点困惑的功能在那里留档:。 根据文档,设计用于: [s]指定在测试中预期运行多少个断言。 这是他们给出的例子: 我在这里唯一看到的是维护噩梦。每次向测试添加断言时,都必须更新该数字,否则测试将失败。这种功能是否有实际应用?
customer-Mapper.xml daoimpl.java
问题内容: 控制器中包含以下内容: 规格: 但这不起作用: 我看到“保存文件”对话框,但显然不是“警告”对话框。 如何单击确定并让水豚看到数据? 问题答案: 改编自CollectiveIdea和其他来源。 在OSX上工作。Firefox 34.0.5 规格: 规范助手: 共享/download_helper.rb:
我正在努力做到没有方法,以便更好地把握概念。 我真的很接近。我的数学课好像没课了。有什么我不明白的? 输出: