- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 RSpec 编写功能测试来测试我的登录表单,但我总是得到以下信息:
1) the signin process signs me in
Failure/Error: visit '/users/sign_in'
ActionController::RoutingError:
No route matches [GET] "/users/sign_in"
但是路由存在:
Prefix Verb URI Pattern Controller#Action
GET /(*any)(.:format) redirect(301)
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
那是我的spec_helper
:
# Include devise methdos
require 'devise'
# Include Capybara
require 'capybara/rspec'
# Use SimpleCov for code coverage
require 'simplecov'
require 'simplecov-shield'
SimpleCov.start 'rails'
SimpleCov.formatters = [
SimpleCov::Formatter::HTMLFormatter,
SimpleCov::Formatter::ShieldFormatter
]
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'
require 'shoulda-matchers'
# Requires supporting ruby files with custom matchers and macros, etc, in
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
# run as spec files by default. This means that files in spec/support that end
# in _spec.rb will both be required and run as specs, causing the specs to be
# run twice. It is recommended that you do not name files matching this glob to
# end with _spec.rb. You can configure this pattern with with the --pattern
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
# Checks for pending migrations before tests are run.
# If you are not using ActiveRecord, you can remove this line.
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
module ControllerMacros
def attributes_with_foreign_keys(*args)
FactoryGirl.build(*args).attributes.delete_if do |k, v|
['id', 'type', 'foreign_id', 'foreign_type', 'created_at', 'updated_at'].member?(k)
end
end
end
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.use_instantiated_fixtures = false
config.mock_with :rspec
# Use FactoryGirl for fixtures
config.include FactoryGirl::Syntax::Methods
# Auto-detect spec types
config.infer_spec_type_from_file_location!
# Insert devise helpers in controller specs
config.include Devise::TestHelpers, type: :controller
config.extend ControllerMacros, :type => :controller
config.include ControllerMacros
# Run specs in random order to surface order dependencies. If you find an
# order dependency and want to debug it, you can fix the order by providing
# the seed, which is printed after each run.
# --seed 1234
config.order = 'random'
config.before(:suite) do
# Clean all tables to start
DatabaseCleaner.clean_with :truncation
# Use transactions for tests
DatabaseCleaner.strategy = :transaction
# Truncating doesn't drop schemas, ensure we're clean here, app *may not* exist
Apartment::Tenant.drop('test') rescue nil
# Create the default tenant for our tests
Account.create!(name: 'Test', domain: 'test', email: 'info@example.com')
end
config.before(:each) do
# Start transaction for this test
DatabaseCleaner.start
# Switch into the default tenant
Apartment::Tenant.switch! 'test'
# Use Timecop to freeze times on time-critical tests
Timecop.return
end
config.after(:each) do
# Reset tentant back to `public`
Apartment::Tenant.reset
# Rollback transaction
DatabaseCleaner.clean
end
end
这是我的测试(/spec/features/login_spec.rb
):
require 'spec_helper'
describe 'the signin process', type: :feature do
before :each do
FactoryGirl.build(:user, email: 'user@example.com', password: 'password')
end
it 'signs me in' do
visit '/users/sign_in'
within('#session') do
fill_in 'Email', :with => 'user@example.com'
fill_in 'Password', :with => 'password'
end
click_button 'Sign in'
expect(page).to have_content 'Success'
end
end
最佳答案
如果您使用子域,您可能需要像这样设置:
spec/support/subdomains.rb
def switch_to_subdomain(subdomain)
# lvh.me always resolves to 127.0.0.1
Capybara.app_host = "http://#{subdomain}.lvh.me"
end
def switch_to_main_domain
Capybara.app_host = "http://lvh.me"
end
以上摘自this handy blog post .里面还有一些其他的想法,re: 不依赖 lvh.me。
设置完成后,您可以使用 url 帮助器为此测试指定子域:
it 'signs me in' do
switch_to_subdomain('test')
visit new_user_session_path
...
关于ruby-on-rails - 在使用 RSpec 进行功能测试时,没有路由匹配 '/users/sign_in',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33997804/
我目前正在用 Python 编写 Java 反编译器,并希望添加一些自动化功能测试。我有一堆简短的 Java 代码,需要确保它们反编译没有错误,输出代码编译,并且生成的程序给出预期的输出。 我计划使用
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
如何对 .net mvc Controller /操作进行功能测试。 我刚刚经历了多年的 Rails 开发,开始从事 .net mvc 的工作。这很痛苦,但我希望这很大程度上只是学习曲线。 对我而言,
我设置了 grunt 任务,以便在我的本地机器上使用 CasperJS 进行一些功能测试。一切正常。 我想知道是否有办法一直运行测试直到失败?或者通过一定次数的测试? 最佳答案 在 powershel
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5个月前关闭。 Improve this q
我在 Wiki 和其他几个地方阅读有关功能测试的内容,但我没有明白一件事 - 为什么它被视为纯粹的黑盒测试?当我测试功能时,我经常依赖于实现方面的知识,或者至少依赖于诸如边界值(或数据库中的数据类型等
我想为 java servlet 编写一些功能测试,并且我想确保它适用于所有可能干扰 servlet 的过滤器和其他随机 java web 内容。在 Java 中有没有好的方法来做到这一点? 我注意到
我希望有人能阐明我面临的这个问题。 [问题] 我在功能单元测试中模拟了 doctrine.orm.default_entity_manager 服务。我将其注入(inject)到客户端服务容器中,这样
我们有一个 Mule 应用程序,它有 6 个或 7 个流,每个流大约有 5 个组件。 这是设置。 我们将 JMS 请求发送到 ActiveMQ 队列。骡听着。根据消息的内容,我们将其转发到相应的流。
我发现 Symfony2 中的功能测试总是尝试将页面请求为“http://localhost” 我的环境是用虚拟主机设置的,所以我的应用程序位于“http://symfony.dev” 经过一些测试,
我有一个 Controller ,我想为其创建功能测试。该 Controller 通过 MyApiClient 向外部 API 发出 HTTP 请求。类(class)。我需要模拟这个 MyApiCli
如题。 ruby test / functionals / whatevertest.rb不起作用,这需要我将所有require 'test_helper'替换为require File.dirnam
我正在使用Grails的功能测试插件为我的RESTful API项目准备功能测试用例。 我无法使用适用于我的其他情况的技术上传文件。 class CreateFunctionalSpec{ final
我有一个用 Python 3 编写的 API 包装类 WfcAPI,我想使用 PyUnit 对其进行测试. WfcAPI 的 setUpClass() 涉及登录到外部 API 服务器。当前功能测试实现
如果操作返回 json 对象,我如何在 Symfony 功能测试中测试响应? 我有密码 with('response')->begin()-> isHeader('content-type','a
我刚开始使用 AngularJS 进行测试。请帮我解决它。我的剧本 angular.module('test', []) .controller('ctrl', ['$scope', 'svc', f
你好, 我一直在思考描述特征的实质(Gherkin语法),找不到最佳答案。 同一场景的两个例子: Scenario: Creation of a new task Given I see the bu
我正在 Julia 中处理一组函数,我必须开发一组覆盖测试。我有一个函数在一个元组中返回 3 个值。 我怎样才能做这样的测试: @test_approx_eq_eps() 这将适用于所有三个输出值,它
我应该为所有嵌套方法编写单元测试,还是为调用者编写一个测试就足够了? 例如: void Main() { var x = new A().AFoo(); } public class A {
最近在研究django测试。因为我需要在我的网站上构建单元测试和集成测试。但是我发现 django 中集成测试的教程真的很少,而且经常在我点击名为“集成测试”的链接时出现,我只看到标题“功能测试”。那
我是一名优秀的程序员,十分优秀!