作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 padrino 和 rspec,我希望能够测试我编写的辅助方法。
我有
规范/应用程序/ Controller /sessions_controller_spec.rb
describe "POST /sessions" do
it "should populate current_user after posting correct user/pass" do
u = User.create({:email=>"john@gmail.com", :password=>"helloworld", :password_confirmation=>"helloworld"})
user = {
email:"john@gmail.com",
password:"hellowolrd"
}
post '/sessions/new', user
current_user.should_not == "null"
end
end
post "/new" do
user = User.authenticate(params[:email], params[:password])
if user
session[:user_id] = user.id
redirect '/'
else
render "sessions/new"
end
end
Testing.helpers do
def current_user
@current_user ||= User.find(:id=>session[:user_id]) if session[:user_id]
end
end
Failures:
1) SessionsController POST /users should populate current_user after posting correct user/pass
Failure/Error: current_user.should_not == "null"
NameError:
undefined local variable or method `current_user' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x0000000313c0d8>
# ./spec/app/controllers/sessions_controller_spec.rb:20:in `block (3 levels) in <top (required)>'
最佳答案
这在他们的问题跟踪器中得到了回答:https://github.com/padrino/padrino-framework/issues/930#issuecomment-8448579
从那里剪切和粘贴:
速记助手(顺便说一下,这是 Sinatra,而不是 Padrino 功能)很难测试是有原因的:
MyApp.helpers do
def foo
end
end
helpers = Module.new do
def foo
end
end
MyApp.helpers helpers
module MyHelpers
def foo
end
end
MyApp.helpers MyHelpers
describe MyHelpers do
subject do
Class.new { include MyHelpers }
end
it "should foo" do
subject.new.foo.should == nil
end
end
关于rspec - 如何在 rspec 中使用 padrino 辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302394/
我是一名优秀的程序员,十分优秀!