如何使用Rspec和Capybara为外部链接创建测试?

我有一个Ruby on Rails 3.2.6应用程序,我使用下面的代码编写了应用程序中链接的测试: visit about_path click_link "Frequently Asked Questions (FAQ)" page.should have_selector 'title', text: full_title('Frequently Asked Questions (FAQ)') 我在整个应用程序中都有链接,人们可以在Twitter和Facebook上关注我们。当他们点击这

Rakefile使RSpec运行两次测试

我对rake运行RSpec有一个奇怪的问题。RSpec本身工作正常,但当使用此耙子通过耙运行时: require 'rubocop/rake_task' require 'rspec/core/rake_task' RuboCop::RakeTask.new(:cop) RSpec::Core::RakeTask.new(:spec) task default: [:cop, :spec] 它生成如下输出: 失败: 1) 公共访问自行车扩展底座的成员无法释放,因为无可用 失败/错误:预期{

Rspec 水豚请求后问题

因此,我正在构建一个集成,包括在页面上提交表单。但是由于某种原因,在post请求期间数据库连接断开了吗?或者服务器没有访问同一个数据库 发生的事情是我得到了一个社区的页面,但是当我在该页面上提交表单时,处理帖子的控制器对该社区一无所知 我已经试过关闭防伪保护。这些连接似乎是相同的(根据AR:Base.connection) 我正在使用集成capybara+rspec的共享连接池方法 (ActiveRecord::Base.shared_connection=ActiveRecord::Base.

Rspec 工厂女工;Mongoid嵌入和构建列表 问题

好的,我现在的问题是FactoryGirl在我的测验中构建嵌入式作业,它使用mongo而不是active record。我尝试使用一个构建列表,它可以与我的活动记录模型一起使用,但是我在使用mongoid时遇到了一个问题 我可以打电话给以下人员并获得测验作业: @quiznos.quiz_assignments.new(due_at: Time.now+ 1.day, published_at: Time.now) 但是如果我打电话 @quiznos = FactoryGirl.build(:

如何在rspec中使用padrino辅助方法

我正在使用padrino和rspec,我希望能够测试我编写的助手方法 我有 spec/app/controllers/sessions\u controller\u spec.rb app/controllers/sessions\u controller.rb app/helpers/sessions\u helper.rb 这是一个由两部分组成的问题。第一部分是我的方法甚至找不到当前用户。第二,我相信如果它被发现,它可能会抛出错误,因为会话没有被定义。但首先,为什么我要让未定义的方法成为当前

TeamCity找不到rspec命令

我试图让TeamCity在我的rails应用程序上运行测试,但它没有看到rspec rspec: command not found 我创建了一个“命令行”构建步骤,其中包含以下内容: rspec spec/ echo '#do rspec spec/' rspec spec/ echo '#which rspec?' echo `which rspec` echo '#do bundle update' bundle update echo

Rspec 3.1.0-为什么#to方法不适用于#x27;真的';?

为什么只有(不推荐的)should语句对我有效? 注释掉的#expect语句失败,尽管它们完全遵循课程中的示例 require 'rails_helper' describe Vote do describe "validations" do describe 'value validation' do it "only allows -1 or 1 as values" do vgood1 = Vote.create :value => 1

检查RSpec示例,但不运行它们

我的spec_助手具有以下标准: RSpec.configure do |config| config.filter_run focus: true config.run_all_when_everything_filtered = true end 当我在做一些事情时,这很好,但是如果我不小心提交了一个重点规范,我希望我的CI构建失败 有什么想法吗?以下是建议。这对我来说很好 RSpec.configure do |config| if ENV['CI'] config.

如何添加到rspec rails回调

我有一些代码添加到rspecrails默认添加到的回调中 我的代码看起来像: module Test module Unit class TestCase append_before(:each) do Test::Unit::AfterFixturesLoaded.custom_stuff1 end append_after(:each) do Test::Unit::AfterFixturesLoaded.cu

Rspec 如何模拟事实来测试对事实执行十进制乘法的傀儡模板?

背景: 我有一个木偶模板,它在渲染时处理处理器事实的count子组件。这一事实存在于我所有的客户身上 事实的用例位于对其执行十进制数学的模板行中,例如:MyConfigVar=在某些.erb文件中 我想: 将模板化代码部署到生产主机。 为我的模板编写健壮的单元测试,这样我就可以确保它能够正确地呈现,给出各种合理的事实值。 我所尝试的: 首先,我试着用sigils:。如果我用rspecpuble模拟facts={:processors=>{:count=>10}之类的东西,我的测试都通过了。清单应

Rspec 如何检测功能规范中是否启用了javascript

我有一个测试助手,如果它被启用了javascript的特性规范使用,那么它需要有不同的行为 我有一个测试,比如: it 'test something', js: true do ... (code that uses javascript) special_method end 还有一个这样的测试 it 'test something else' do ... (code that does not use javascript) special_method end

不运行测试的RSpec集合

是否有一种方法可以触发RSpec测试用例集合,但不运行测试 在Python的pytest中,等价物是附加一个--collect only开关 我的用例:我想运行一个钩子来验证关于测试用例的一些元数据,比如强制执行一个强制标记模式,并且我想将这个验证检查作为PR检查包括在内。问题是,我并不真的希望测试套件运行,但我只想验证测试用例元数据 任何帮助都将不胜感激,并提前感谢您 似乎没有内置的方法来进行收集。相反,我不得不在我的spec\u助手中添加以下内容。基本上,如果将环境变量CONTEXT=val

在rspec中组织期望

我的问题是基于这一点的:同时也基于这些指导原则: 所以,如果每个“it”块只有一个期望值,那么如果我将模拟期望值和价值期望值混合在一起呢 例如: describe Foo, "#bar" do before :all do @baz = mock(Baz) @foo = Foo.new(@baz) end it "should call waka on @baz" do @baz.should_receive(:waka) end it "should

使用RSpec,是否有方法断言模型的特定属性是否无效?

我是RSpec的新手,我有一个测试场景,其中我写道: my_object.should_not be_valid 它工作正常。但是,我想测试模型的特定属性是否无效。这是一种现成的RSpec行为吗?我可以写一些类似于: my_object.should_not be_valid(:name) my_object.should_not be_valid(:name => 1) 理想情况下,我也希望能够测试错误的数量,例如: my_object.should_not be_valid(:n

带RSpec的工厂女孩

我正在使用FactoryGirl编写RSpec。它一直在犯错误 NoMethodError: undefined method `saved?' for nil:NilClass 我认为发生此错误是因为对象C没有正确初始化。在这里,我定义了三个模型A、B和C,其中模型C依赖于其他两个模型。我在factory.rb中没有按特定顺序编写它们,即首先编写C,然后编写A和B。我想知道是否必须根据依赖关系按特定顺序定义它们。谢谢。在FactoryGirl定义中,对于传入的块中的任何代码,定义顺序都

Rspec Friendly id,Friendly保留

嗯-有史以来最令人困惑的验证错误,考虑到我甚至没有使用“友好”一词,我的角色模型看起来是这样的: class Role < ActiveRecord::Base validates :role, presence: true extend FriendlyId friendly_id :role, use: [:slugged, :history] end 最后,让我们编写一个规范,并确保我们可以创建角色: context "Validation checks" do

Rspec中期望值和匹配值的差异

大家好,我是rspec的新手,有人能告诉我这两者的区别吗 期望值和匹配者这让我很困惑 我已经看了一些例子,但无法理解,有人能帮我吗这些概念在文档中解释得很好: 如果您熟悉其他测试框架,那么期望就像断言一样工作。匹配器在预期范围内用于获取要测试的值。这些概念在文档中得到了很好的解释: 如果您熟悉其他测试框架,那么期望就像断言一样工作。匹配器在预期范围内用于获取要测试的值。@farooq您是否遵循了其中一个链接?我不是想唠叨,我真的很好奇,你是否觉得文档中的示例不足,是否值得创建一个实质性的

Rspec can';t重复类-轨道

当我运行RSpec时,我得到错误不能复制NilClass 我尝试添加了不可加载的,但没有解决它 我认为这是导致错误的函数: class User < ActiveRecord::Base before_save :create_permalink validates :username, presence: true, length: { maximum: 50, minimum: 3 }, uniqueness: { cas

使用RSpec测试suckrpunch::Job

我已经定义了以下SuckerPunch作业: class MyWorker include SuckerPunch::Job def perform(account) @account = account end def params @account end end 我想用RSpec测试它: describe MyWorker do before { subject.perform("test@mail.nl") } its(:params)

Rspec中的命令式和声明式步骤

我想知道Rspec中的命令式与声明式步骤是关于什么的 以下是Rspec手册中的示例代码: Scenario: transfer money (declarative) Given I have $100 in checking And I have $20 in savings When I transfer $15 from checking to savings Then I should have $85 in checking And I should have $35 in savin

Rspec iframe中的内容匹配

下面是一个场景,我想检查我页面上的iframe以确保某些内容存在。我试着: within_frame 'my_frame_name' do find('#id_of_a_div').value should match 'match me please' end 尝试了几个变体,但都不起作用 有什么建议吗 好问题!有人吗?你能提供更多细节吗?你用的是什么密码?抛出异常?您尝试过的变体?我认为OP的问题是因为值和应该之间没有点。 within_frame 'my_frame_name'

Rspec 水豚:css语法含义

我目前正在修改一些规范,并找到了一种语法,似乎没有人知道它代表什么 在Capybara套件中,多次出现以下情况: 在(:css,#foo')do中 通过删除:css,我发现这在功能上与(“#foo”)do中的相同 有区别吗?还有哪些符号可以作为第一个参数传递到内部?在跟随@Andrey Botalov的链接之后,我发现这解释了将哪种选择器输入到内部块中 在我的例子中,Capybara.default\u选择器被设置为:css,因此:css是默认值。列出的唯一其他选项是:xpath我认为这只是重复

Rspec 错误和/或损坏的GEM

我在使用gem install rspec命令时收到一个错误,我是编程新手,似乎出了什么问题我都不知道。非常感谢您的任何建议 Ruby-v ruby 1.8.7(2012-02-08 patchlevel 358)[universal-darwin12.0] RVM-v rvm 1.21.20(稳定) 问题:我是否键入gem install rspec,gem-v,哪个gem,gem列表下面是消息: /System/Library/Frameworks/Ruby.framework/Versio

如何在Rspec中使用ActiveModel::Lint::Tests

对于默认的Rails,您可以添加所谓的来查看您的模型是否符合ActiveModel的部分 我想在我的Rspec测试中称之为这些,或其等价物 我不想测试确切的行为:lint只测试特定接口存在的规范。我只想说明接口是否存在 我宁愿不要。仅仅测试模块是否包含与测试接口是否存在并不完全相同 在rspec示例中运行并包含Rails核心ActiveModel::Lint::Tests有什么诀窍吗?是否有专门为运行此类lint测试的Rspec构建的替代方案 一些背景: 我正在构建的模型不是继承自Activ

用RSpec构建CSV数据驱动的测试是最简单的方法吗?

我是Ruby和RSpec的新手,做了一些研究,发现有几种方法可以从在线帖子中进行数据驱动的枚举测试,但它们不像完整的教程那样涉及到很多细节。所以在我再次详细阅读这些在线文章之前,我想我应该先问一下这里 这里的设置是基于使用RSpec的标准简单方法(定义了descripe&it块,而不是仅导入RSpec的部分来实现期望)。然后,我尝试将数据驱动能力添加到it中: require 'rspec' require 'csv' describe "test suite name" do befor

Rspec 如何创建用于测试ruby on rails控制器的假数据

我想用railsrspecgem测试我的rails控制器。我已经为测试设置了一切(运行了所有rspec命令,安装rspec-gaurd等等),但是我不确定如何创建一个假的数据来传递给我的控制器。我选择工厂女孩轨道的原因?(如果这是错误的宝石或有更好的东西,我需要知道,请让我知道)。我的控制器参数应如下所示: { "name": "example", "job" : "TheJob" "config": "{THIS IS A HASH}" } 我的工厂是这样的: 这就是我的rsp

如何在rspec中创建嵌套let?

是否可以修改现有的let变量,例如将条目添加到哈希: describe 'my spec' do let(:var) { { a: 1, b: 2 } } let(:foo) { bar(var) } context 'when c is defined' do let(:var) { var.merge c: 3 } # This does not work because it will be evaluated recursively # ... actua

Rspec Byebug未在控制台中打印任何内容

我在rspec中添加了调试,如下代码所示 code : it 'sample testing' do byebug post: create, user:{id:1, name:'sample_user'} , format: 'json' expect('sample_Scenario') end 当我运行上面的rspec时,正如预期的那样,它在byebug处中断,但我无法检查或获取信息。控制台将像这样 (byebug) tester (byebug) l (by

Rspec 为什么访问我的根路径需要预热时间才能使测试数据可用?

我正在从水豚网络工具包转换到恶灵/幻影。我遇到了一个计时问题,我已经确定了哪一行代码需要预热时间,但我无法确定这是为什么或者如何解决它 我有一个225行的规范文件和几十个测试。在任何给定的测试运行中,其中一个或两个将始终失败。它可以是其中的任何一个,这是不一致的 此前块适用于所有测试。我已经注释了代码来解释这种情况 before do # --> Create several objects using factory girl # --> stub some methods

Rspec 如何测试微服务集群?

我看了一下,它清楚地说: 备注:serverspec测试套件旨在针对单个计算机(或docker容器)运行。换句话说,您不应该试图发出一个rspec命令来获取和运行针对多台机器或容器的测试。您需要为它们中的每一个发出一个rspec命令 所以我可以对每台服务器进行测试,这在某些情况下是很好的。但问题在于:我的微服务体系结构有一个自动发现服务,因此一些服务在查询后是已知的。有什么项目可以表达这一点吗?我知道我可以使用ruby(或者python,如果我选择的话)或其他工具 与Concur和servers

它没有';当我在rspec测试中使用Watir.default\u timeout时,它似乎不起作用

我需要延长@页面上的等待时间。请运行\u asset,因为完成此过程可能需要30秒以上的时间。所以我找到了Watir.default\u time并将其添加到我的代码中。当我运行测试时,它仍然失败,并显示与以前相同的错误: 失败/错误:@page.run\u资产 Selenium::WebDriver::Error::ScriptTimeOutError: 脚本超时:30秒内未收到结果 我尝试实现以下代码,但它显示了相同的错误 it 'expects table action to succee

rSpec和Rails3中的短截线装置

您将如何使用rSpec在Rails 3中设计存根。我有一个userscoontroller和一个User模型。目前,这两项都与Desive有关,我正在编写控制器规范,我的期望真的很难实现,因为Desive登录确实干扰了工作 任何事情都会有帮助。你可以试着模仿Desive所依赖的底层warden()对象,这里有一个链接,指向一些关于如何使用RSpec实现这一点的详细信息:(条目还包括一些其他主题,你想要的解决方案在页面底部。)我发现现在做这件事很容易。rspec2和Desive存在问题,但现在已解

Rspec 如何从命令行查看rcov的统计信息?

我正在运行内置的rake任务来生成rcov报告: rake规范:rcov 这将在我的coverage目录中生成文件,但我希望看到一些聚合统计数据输出到命令控制台 总覆盖率和测试行数的格式与运行rake stats时得到的格式类似 有人知道这样做的方法吗?我在我的rcov.opts中添加了-text summary选项,它输出了我需要的数据

在Rspec测试中扩展FactoryGirl

我试图在rspec测试中使用FactoryGirl函数create和build,而不是每次都指定FactoryGirl命名空间:create,而不是FactoryGirl::create 我想我可以通过如下扩展FactoryGirl来做到这一点,但我总是得到一个命名错误 RSpec.configure do |c| c.extend FactoryGirl end describe 'my thing' do it 'should be ok' do obj = create

Rspec 当第一个页面与第二个页面具有相同字段时,等待第二个页面加载Capybara的正确方法

我对访问两个表单的规范有一个问题,这两个表单上都有相同字段的电子邮件。如果我没有手动睡眠,水豚似乎会在测试的第二部分的第一次访问中找到电子邮件字段 # visit the first form and fill out a subscription visit new_front_form_subscription_path(@web_form_1.id) fill_in "Email", with: "subscriber@example.com" fi

Rspec 使用csrf保护测试sinatra路由

我正在尝试测试基本sinatra应用程序的路由,但由于csrf保护错误,我的测试请求失败Rack::csrf::InvalidCsrfToken。 这些路由通常由客户端应用程序命中,该应用程序通过标记包含csrf令牌。 我曾尝试通过Rack::csrf.token访问csrf令牌,但我无法访问env(或者至少我不知道如何在我的rpsec测试中访问env),并且没有获得成功 app.rb use Rack::Csrf, raise: true put '/api/events/:id' do

SystemStackError-堆栈级别太深;在Rspec测试中,使用acts作为受审核、Rspec、数据库清理器

我遇到了一个奇怪的无限递归,它只出现在Rspec测试中。奇怪的是,这是因为在我的用户对象中添加了审计,尽管它失败的规范实际上与我的用户对象无关 这是它失败的测试。像所有无限递归一样,我没有得到实际的stracktrace,只有堆栈级别太深的故障: 1) Spree::CheckoutController order in address state #update payment to complete step should set the address id on a newly cre

Don';t在完成rspec傀儡测试后删除公共傀儡模块

在.fixtures.yml中,有从公共库下载的模块,如以下示例中的stdlib和concat: fixtures: forge_modules: stdlib: puppetlabs/stdlib concat: puppetlabs/concat 每当运行rspec puppet测试时,都需要下载这些模块。测试完成后,它们也会被删除 如果所有测试都完全运行,这是很好的。但是,如果有需要单独运行的失败测试,则这些模块不可用。我必须同时运行所有测试(100+),这样就可以下

Rspec 平分时,在使用--seed选项时,规格排序如何不一致

我正在寻找片状(闪烁)规格,并运行rsspect-bisect--seed 19818 第一批检查似乎很有希望: Running suite to find failures... (1 minute 6.68 seconds) - Failing examples (6) - Failure appears to be order-dependent 但接下来会发生这样的情况: Round 1: bisecting over non-failing examples 1-299 Bisec

为什么不';RSpec匹配器工作吗?

当我使用任何基本匹配器运行这个简单的RSpec时,它都不起作用: 文件: 使用的任何匹配器的输出如下所示: /private/tmp/rspec_matcher_test/matcher_spec.rb:3:in `block in <top (required)>': undefined local variable or method `be_true' for #<Class:0x007fdcd60ccb40> (NameError) from /Users

Rspec 在水豚规范中包括辅助模块

我正在为rails中的Capyabara编写规范。在这里,我找到了一篇在功能规范之间共享通用代码的文章。链接: 但当我在rails规范中使用其模块方法“sign_-in”时,它给出了错误“uninitialized constant sign_-in” 如何在rspec中正确导入此帮助器模块?谢谢。可以使用RSpec.configure包含助手方法 假设希望所有示例都可以使用帮助器方法,请将以下内容添加到等级库帮助器(或至少在示例组之外的某个位置): 有关更多示例,例如仅将helper方法添加到

Rspec 当路由存在时,没有路由匹配错误

以下是我正在测试的代码: before_action :set_location, only: [:show] def create @location = Location.new( location_parameters ) if @location.save redirect_to location_path(@location.id) else render action: :new, status: 422 end en

未定义的方法“create';在Rails RSpec中

我已经安装了FactoryBot,并尝试将其与RSpec一起使用 场景“用户登录”执行 创建:用户,电子邮件:'test@example.com,密码:“testpassword” 访问“/用户/登录” 在“电子邮件”中填写:'test@example.com' 在“密码”中填写:“testpassword” 结束 我得到了以下错误 失败/错误:创建:用户,电子邮件:'test@example.com,密码:“testpassword” 命名错误: 未定义的方法“create”# 在我的例子中

如何让rspec显示完整的故障跟踪

当我使用kitchen verify运行以下失败测试时 describe command ('cat example.txt') do its(:stdout) { should contain('param1 50') } its(:stdout) { should contain('param2 77') } end 我得到以下故障跟踪: Command "cat example.txt" stdout should contain "param1

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 26 页