草庐IT

使用Capybara Webkit嘲笑RSPEC功能规格中的外部SSO登录

我的应用程序将重定向到外部方,以进行单个符号(SSO)。登录后,该外部聚会将用户重定向到我的应用程序的回调路由。这是在控制器中实现的:SsoController在我的功能规格中,我很想实际被嘲笑,以便从用户的角度测试端到端功能。我正在使用RSPEC+Capybara,我想对以下流程进行建模-用户单击一些按钮(例如“登录”)该按钮与connect上面的行动将其重定向到某些外部政党RSPEC根据发送的参数嘲笑响应,并发送POST请求回到我的应用程序(callback行动)进一步的业务逻辑以登录用户并将其带到目标我不确定如何执行第三步,尤其是拦截呼叫,构建响应并进行后回来谢谢!编辑:一个POST请求

在运行RSPEC测试时,如何停止与外部API交互的After_Create回调?

我有一个带有一个带有的轨道模型after_create回调,具有与外部API交互的代码。当我运行RSPEC测试时,该代码将被执行,并在另一个应用程序上创建内容。我想做一些事情:after_create:external_api_code,unless:testing?deftesting?#whatgoesheretorecognizethattheobjectisbeingcreatedinatest?end看答案检查代码是否在测试环境中运行:Rails.env.test?为了避免在RSPEC中运行外部API代码,请将其放在您的配置块中:RSpec.configuredo|config|co

如何格式化RSPEC以显示默认传递

如何永久格式化RSPEC以显示通过测试文本。目前,我必须输入:$rspecspec--formatdocumentation每次我运行它。我看到该文档说要运行以下内容:“您还可以通过将文件名附加到参数上来指定输出目标(默认情况下):”documentation:rspec.output.txt但是,我不知道“指定输出目标”的含义(默认情况下)我只想在通过测试而不是绿色点上看到文本,而无需输入--formatdocumentation每次...看答案您需要创建一个.rspec归档项目的根源*YOUR_PROJECT**A_SPEC_FOLDER**ANOTHER_SPEC_FOLDER**Gem

无法加载此类文件 - rspec/core/rake_task带有capistrano

我不是RubyonRails。当我启动时:capintegrationdeploy我有一个错误:INFO[90feb630]Running/usr/local/rvm/bin/rvmruby-2.4.0@myproject_gemsetdobundleexecrakeassets:precompileas[email protected]DEBUG[90feb630]Command:cd/home/myproject/myproject_rails/releases/20170703135523&&(exportRAILS_ENV="staging"RAILS_GROUPS="";/usr/l

ruby-on-rails - 使用 RSpec 测试 Redis 事务

我正在使用WATCH/MULTI/EXEC命令序列来完成Rails应用程序中的事务。我想详细说明应用程序在交易成功和交易失败时的行为(特别是在交易期间在另一个session中修改监视的key时)。具体来说,给出下面的(人为的)示例,我如何编写一个规范,在执行任意计算时始终修改Redis中的testval?deftest_watchREDIS.watch("testval")doval=REDIS.get('testval')val+=1000#arbitrarycomputationREDIS.multido|m|REDIS.set('testval',val)endendend

rspec - 当在一个 RSpec 套件中调用多个 with_api() 测试时,Goliath 会破坏 em-synchrony/em-hiredis

我在使用RSpec测试GoliathAPI时遇到了奇怪的行为。我的一项测试如下所示:require'helper'describeScales::Dispatchdoit"shouldreturna404ifresourcewasnotfound"dowith_api(Scales::Server)doget_request(:path=>'/')do|client|client.response_header.http_status.should==404endendendit"shouldreturnaresource"doScales::Storage::Sync.set"/ex

ruby-on-rails - 使用 Redis 和 Rails 的 Rspec 测试失败

我重构了我的Rails代码,将用户关系存储在Redis而不是Postgres数据库中。之前的代码:#user.rbhas_many:relationships,foreign_key:"follower_id",dependent::destroyhas_many:following,through::relationships,source::followeddeffollow!(other_user)relationships.create!(followed_id:other_user.id)end重构后的代码:#user.rbdeffollow!(other_user)rdb.

RSPEC 2.3 +设计1.0.11

我有一个非常旧的轨道2.3.18,Ruby1.9.3,RSPEC1.x应用程序,我们正在升级,并且其中有静止的认证。因此,我已经用设计1.0.11代替了。我可以登录到应用程序,但是我的测试不会运行;这是所讨论的测试require'spec_helper'describeCategoriesControllerdocontext"Asaloggedinuser"dobeforedologin_usercurrent_firm=mock_model(Firm,:id=>1)controller.stub!(:current_firm).and_return(current_firm)enddesc

ruby-on-rails - 如何处理 Rspec 中的 Mongoid::Errors::DocumentNotFound?

我有一个带有以下代码的ArticleController:defedit@article=current_user.articles.find(params[:id])end以及以下测试:describe"GET'edit'"doit"shouldfailwhensignedinandeditinganotheruserarticle"dosign_in@userget:edit,:id=>@another_user_article.idresponse.should_notbe_successendend但是,当我开始测试时,出现以下错误(这是正常的),但我想知道如何处理才能让我的测

ruby-on-rails - 使用 Rspec 和 Mongoid 5.0 on Rails 4 清理或重置测试数据库

当我运行我的rspec测试时,由于我的mongodb数据库中的数据过时,很多测试都失败了。据我所知,使用干净的数据库进行测试要好得多。如何在每次测试前清理和/或重新植入数据库? 最佳答案 您可以使用database_cleanergem来完成这个任务。来自他们的文档:RSpec.configuredo|config|config.use_transactional_fixtures=falseconfig.before(:suite)doDatabaseCleaner.clean_with(:truncation)endconfig