- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试关注 Rails Tutorial,但我的 rspec 失败了,但在浏览器中,该应用程序可以按需运行。那是当我登录(在浏览器中)并转到“http://localhost:3000/users/1/edit”时,此页面打开。本教程中所有先前的 rspecs 均已通过。
我正在使用 Rails“3.1.0.rc4”并在 Windows 中工作。
失败的规范(来自 users_controller_spec.rb):
describe "GET 'edit" do
before(:each) do
@user = Factory(:user)
test_sign_in(@user)
end
it "should be successful" do
get :edit, :id => @user
response.should be_success
end
end
来自 spec_helper.rb 的 test_sign_in 代码:
RSpec.configure do |config|
config.mock_with :rspec
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
def test_sign_in(user)
controller.sign_in(user)
end
end
工厂代码.rb
Factory.define :user do |user|
user.name "Mikhail"
user.email "mikleb@yandex.ru"
user.password "123456789a"
user.password_confirmation "123456789a"
end
来自控制台的文本:
Failures:
1) UsersController GET 'edit should be successful
Failure/Error: response.should be_success
expected success? to return true, got false
# ./spec/controllers/users_controller_spec.rb:111:in `block (3 levels) in <
top (required)>'
UPD:在“get :edit, :id => @user”之后用户没有登录。但是正如我在浏览器中写的那样,一切都按需要工作。这怎么可能?
这是包含在 ApplicationControlelr 中的 SessionHelper:
module SessionsHelper
def sign_in(user)
cookies.permanent.signed[:remember_token] = [user.id, user.salt]
self.current_user = user
end
def sign_out
cookies.delete(:remember_token)
self.current_user = nil
end
def signed_in?
!current_user.nil?
end
def current_user=(user)
@curent_user = user
end
def current_user
@current_user ||= user_from_remember_token
end
def deny_access
redirect_to signin_path, :notice => "Please sign in to access this page."
end
private
def user_from_remember_token
User.authenticate_with_salt(*remember_token)
end
def remember_token
cookies.signed[:remember_token] || [nil, nil]
end
end
最佳答案
您是否转储了 response.body
以查看 Rspec 认为它看到的是什么?您可能(我忘了这是否仍然有必要)需要启用 render_views
,如 in this question 所述).
是否有可能用户没有真正登录,因此站点从编辑重定向到登录页面或类似的页面?
另一个警告,如果 HTTP 代码是 2xx 代码(200 ok,201 created 等),我很确定 rspec 只为 be_success
返回 true。因此,如果您的 Controller 正在重定向(302、304 等),则 rspec 不会将请求视为“已成功”。
尝试在断言之前放入 puts response.body
,这可能会帮助您缩小问题范围。
关于ruby-on-rails - railstutorial.org - rspec 失败但在浏览器中一切正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6767466/
app/helpers/sessions_helper.rb module SessionsHelper def sign_in(user) cookies.permanent[
在 rubyrailstutorial.org 之后达到内存限制 你好, 我正在关注 Ruby Rails Tutorial 上的教程我正在使用 Cloud9 IDE但是,在运行本教程时,我不断收
我正在研究 Michael Hartl Railstutorial.org - 第 10 章 - 密码重置。我在开发环境(Cloud9)配置了邮件,邮件就发了。一切正常,直到用户单击系统发送的电子邮件
在第 7 章中,我使用 获得以下输出 --- !ruby/hash-with-ivars:ActionController::Parameters elements: controller: st
在 Ruby on Rails 3 教程的 6.2.4 节中,Michael Hartl 描述了一个关于检查电子邮件地址唯一性的警告:如果两个相同的请求及时接近,请求 A 可以通过验证,然后 B 通过
我正在尝试关注 Rails Tutorial,但我的 rspec 失败了,但在浏览器中,该应用程序可以按需运行。那是当我登录(在浏览器中)并转到“http://localhost:3000/users
我正在尝试关注 railstutorial.org,目前在第 7 章,您开始使用工厂:http://railstutorial.org/chapters/modeling-and-viewing-us
我正在尝试让错误闪现出现在 railstutorial.org 示例应用程序中。到目前为止,这就是我所做的。谁能帮我找出错误: 我的 RSPEC 测试失败: 1) SessionsController
在11.2.5部分在 Railstutorial(.org) 的 Rails 3.2 版本中,我无法让所有的https://relationships_controller_spec.rb 测试通过,
我是 Rails 的新手,所以请原谅以下菜鸟问题并提前致谢... 我正在关注 rails tutorial然而,一旦我到达第 9.12 节,我们将忘记逻辑添加到 sessions_helper.rb,
在阅读 Michael Hartl 的 railstutorial.org 时,我进入了第 8 章(特别是 8.2.3)。当前的问题是实现一个 session 以保持用户在多个 View 中登录,但是
在railstutorial中,作者为什么选择使用这个(代码 list 10.25): http://ruby.railstutorial.org/chapters/updating-showing-
这个想法是为了让管理员用户无法 self 毁灭。我写了以下测试: describe "as admin user" do let(:admin) { FactoryGirl.create(:adm
这个想法是为了让管理员用户无法 self 毁灭。我写了以下测试: describe "as admin user" do let(:admin) { FactoryGirl.create(:adm
我正在学习 http://ruby.railstutorial.org 上的教程 具体来说,第 9 章 (9.2.3) http://ruby.railstutorial.org/chapters/u
我没有从 Hartl 的 Rails 教程中得到以下练习的答案: By replacing the question marks in Listing 4.10 with the appropriat
我正在关注 rails 教程并被困在第 1.4.3 章 Bitbucket 上。 https://www.railstutorial.org/book/beginning#sec-bitbucket
我已完成 Chapter 6 of railstutorial但我所有的 User model specs在我添加 password 后不久就开始失败& password_confirmation有以
我在 Section 11.3.1的 Rails 教程,所有测试都在此之前通过。之后,主页(有微博提要)因以下错误而中断: PG::Error: ERROR: invalid input synta
示例代码: assert_select 'div#' assert_select 'div.' 这会产生:弃用警告:由于无效的 css 选择器,断言未运行。 ] 16% 时间:00:00:01,预计到
我是一名优秀的程序员,十分优秀!