Rspec Cuke4Nuke还是SpecFlow?

我正在尝试决定是使用Cuke4Nuke还是SpecFlow。 每种方法的优点/缺点是什么?关于哪个更好以及为什么更好的意见 谢谢 (我可能有偏见,因为我参与了SpecFlow,但这里是我的想法…) Cuke4Nuke与Cucumber非常接近。 这将带来很多好处: 相容性 当Cucumber进化时,从Cucumber获得新特性(至少在理论上,但语言支持就是一个例子) 作为黄瓜群落和黄瓜生态系统的真正一部分 然而,这也有一些潜在的缺点: 红宝石是必需品 由于涉及到更多的基础设施(Ruby、W

Rspec 如何在FactoryGirl中获得随机数?

FactoryGirl是否可以定义一个随机数,比如0-10 factory :rating do ranking 1 #random number? recipe end 我真的希望生成的排名数字是0-10之间的随机值 我想用不同的数字生成评级,但不想在rspec中明确定义它们。这将用于显示评级数字的平均值和其他统计数据。例:有多少个10,多少个0,平均值等等。可能是这样的吗 FactoryGirl.define do sequence(:ran

共享上下文的Rspec参数

我想在每个控制器操作中测试用户是否登录 最好的做法是将其晾干,以便我可以在所有的get操作中重复它,即get、show、new、edit 它需要传入get:index、get:new等,并传入用于显示和编辑的参数 以下是非干式版本,只需一个操作: RSpec.shared_context 'when user is not logged in' do before do sign_out :user end it 'GET#index redirects to sign

Capybara/RSpec——测试have_含量的多种可能结果

我是测试新手,所以请容忍我:) 我想测试页面上的随机内容。例如,让我们测试页面是否显示“foo”或“bar”内容 下面是我想要达到的目标 page.should (have_content('foo') || have_content('bar')) 有什么好主意吗?我不知道有什么好用的。但是你可以自己烤 使用: page.should满足{page | page.has_content?('foo')或page.has_content?('bar')} 或 编辑:有内容接受正则表达式,因此您

RSpec:未定义的方法'assert#u difference';对于(命名者)

我在谷歌上搜索了这个错误,但没有找到可以修复的。 请帮帮我。谢谢:)确保在spec/spec\u helper.rb中包含AssertDifference: context 'with event_type is available create event' do let(:event_type) { EventType.where( name: 'visit_site').first } assert_difference 'Event.count' do Event.fir

Sinatra的Rspec render_模板等效物?

我目前正在构建一个Sinatra应用程序,它将作为API的一部分输出JSON模板。使用rails和rspec rails gem进行测试时,我能够调用: response.should render_template('template-name') 然而,由于我没有使用Rails,我假设这不会起作用。Sinatra测试json输出的替代方案是什么?谢谢 有一些,但我就是这样安排的。通过将应用程序包装在模块的类方法中,可以更容易地在规范中运行,然后只需通过last\u response.bod

Rspec 添加';时堆栈级别太深(SystemStackError);规格帮助器&x27;

我正在升级一个旧的rails2.3应用程序,发现大多数规范都失败了。 我正在努力让他们通过 到目前为止,大多数规范文件还没有包含require“spec\u helper”,但需要添加它。 (不知道为什么它以前不在那里) 当我将spec\u helper添加到一些控制器时,我得到的错误堆栈级别太深(SystemStackError)。 我目前运行的程序如下,但我相信这可能是Rails 2.1的应用程序 轨道2.3.17 Rspec轨道1.3.2 Ruby 1.9.3 文件的顶部看起来像这样。

Rspec 对象。任何\u实例都应该\u接收vs expect()接收

以下代码按预期工作: Object.any_instance.should_receive(:subscribe) 但当使用新的rspec预期时,它不起作用: expect(Object.any_instance).to receive(:subscribe) 错误是: expected: 1 time with any arguments received: 0 times with any arguments 如何使expect()接收工作正常?现在有一个没有很好文档记录的方法,名为e

将rspec gem更新为2.14.1后未找到规范帮助文件

我收到错误消息: 'cannot load such file -- spec_helper' 将rspec gem从2.13更新到2.14.1之后 下面是我的宝石清单。RSpec2.14.1是否有一些依赖项、gems需要更新 *** LOCAL GEMS *** active_support (3.0.0) activesupport (4.0.0) addressable (2.3.4) atomic (1.1.13) bigdecimal (1.1.0) builder (3.2.

宙斯rspec不';当js:true和driver=:poltergeist_调试时,t返回shell

运行zeus rspec spec/后,如果有使用js:true的示例,则该命令不会将控制权返回bash shell。它运行测试并报告结果,但不退出。但是,如果我只运行rspec而不运行zeus 我可以用这个微不足道的规范重现问题: require 'spec_helper' describe "users index" do before { visit root_path } it "should not hang", js: true do expect(page).t

RSPEC测试未能发布一个;创建;嵌套资源的操作

我有一个名为“参数”的资源,它嵌套在API中的“测试”下。其关系如下:“一个测试有许多参数”。我的路线安排如下 测试/:测试id/参数/:参数id 我的rake路由给出: test_参数GET/tests/:test_id/参数(:format)参数#索引{:format=>:json} POST/tests/:test_id/参数(:format)参数#创建{:format=>:json} new_test_参数GET/tests/:test_id/parameters/new(:format

RSpec和FactoryGirl对表演动作的解释

刚开始与RSpec和Factory Girl一起学习测试,并且遇到了这个测试 describe "#show" do it "render the show template" do get :show, id: FactoryGirl.create(:opinion) expect(response).to render_template :show end end 要呈现show页面,我知道它需要ID。

Rspec 如何测试ApplicationRecord抽象基类中的方法?

我还没有找到测试ApplicationRecord方法的好方法 假设我有一个名为one的简单方法: class ApplicationRecord < ActiveRecord::Base self.abstract_class = true def one 1 end end 不出所料,NotImplementedError:ApplicationRecord是一个抽象类,无法实例化。 所以我尝试了匿名课堂建议: 这将随着TypeError而消失:没有将nil隐式

TestClass(Rails)的Rspec作用域问题

当我分别运行这些rspec文件时,它们都通过了,当我一起运行时,它们失败了 似乎当我运行@application\u presenter=descripted\u class.new(TestClass.new,view\u context)时,它使用了ActAsAttribute\u spec.rb中的TestClass 这似乎是一个范围问题。我认为RSpec.descripe是有名称空间的。处理这一冲突的最佳方式是什么?我可以更改TestClass的名称,但我更喜欢一种更好的方法,即确保我的

Padrino子应用程序和主应用程序的RSpec

有没有什么好方法可以用rspec测试Padrino中的控制器和子应用程序模型?我是一个新手,正在尝试Padrino和Mongoid ORM。有人能给我提供Padrino中显示子应用程序和主应用程序RSpec示例的链接吗。您可以切换@APP @app=Admin.tap{} 或 @app=YourApp.tap{}你能举个简单的例子,说明我如何使用app()吗?

如何执行rspec 1.3.2中的控制器规范

我有一个旧的rails应用程序,在Rails2.3中,我想升级到Rails3。然而,在我这样做之前,我想添加一些rspec测试。由于它是Rails2.3,我相信我必须使用RSpec1.3,这就是我遇到麻烦的地方 我有一个简单的控制器: class MySimpleController < ApplicationController def index ... end end 我得到了错误 ActionController::RoutingError in 'MyS

有关Selenium Webdriver的RSpec错误

试图通过迈克尔·哈特尔的教程;在这里遇到问题 我刚刚创建了应用程序 下面是我运行“bundle exec rspec spec/requests/static_pages_spec.rb”时看到的内容 Corey-M-Kimball:sample_app coreymkimball$ bundle exec rspec spec/requests/static_pages_spec.rb /Users/coreymkimball/.rvm/gems/ruby-2.0.0-p247@railstu

是否应该使用RSpec预期语法

使用和RSpec的新语法的正确格式是什么?当然可以使用shoulda matchers和新的expect语法,如下所示: it 'should validate presence of :email' do expect(subject).to validate_presence_of :email end 或者更简洁但可读性较差: it { expect(subject).to validate_presence_of :email } 即使在config.syntax==:expec

如何使用serverspec服务资源测试redis服务是否正在运行?

我正在用公共汽车。我正在尝试测试服务是否正在运行到我的kitchen实例中 这是我的服务器规格测试 描述“myapp::redis”应该做什么 描述服务('redis6379')的用途 它{应该启用} 它{应该在运行} 结束 结束 但是当我运行命令kitchen verify时,它就是结果 myapp::redis 服务“redis6379” 应该启用 应正在运行(失败-1) 它测试告诉我redis服务已启用,但未运行 这里发生了什么 如何使用serverspec服务资源解决此问题?这可能是

Rspec 预期响应的状态代码为:不可处理的_实体(422),但其状态代码为:禁止(403)

我试图为产品模型执行租户强制执行。但在更新请求规范中,它显示以下错误: 预期响应的状态代码为:不可处理的_实体(422),但其状态代码为:禁止(403) class ProductsController:controller do 以前{ 控制器\u存根\u令牌\u身份验证 } let(:valid_session){{} let(:上下文){ OpenStruct.new( 租户id:SecureRandom.uuid ) } 以前{ 允许(控制器)。接收(:当前上下文)。和返回(上下文) }

RSpec:有没有办法在任何级别检查嵌套的哈希键?

我希望我的散列看起来像以下两种: {metadata: {SOME_UNKNOWN_KEY: {transaction_id: 123456}}} {metadata: {transaction_id: 123456}} 如果我正在寻找键:transaction\u id,我知道我可以使用hash\u include来期望嵌套键应该位于特定位置,但我希望能够这样做以涵盖这两个选项: expect(something). to receive(some_method). with(has

RSpec:新用户视图测试失败,该测试应通过

我对这次考试有信心: require 'rails_helper' require 'support/factory_girl' RSpec.describe 'users/new', type: :view do before(:each) do assign(:user, create(:user)) end it 'renders new user form' do render assert_select 'fo

注释模型的Rspec测试(验证失败:用户必须存在)

我有一个评论和用户模型的关联(属于:user并且有很多:评论)。在注释中,它抛出了一个错误。 注释模型: class Comment < ApplicationRecord belongs_to :post belongs_to :user validates :post_id, presence: true validates :body, presence:true, length: {minimum: 4} end 用户工厂 require 'faker' FactoryBot.d

分页的Rspec

在我的rails应用程序中,will_paginate gem用于对文章进行分页。它显示每页10篇文章。因此,我写信来检查分页是否显示每页10篇文章 最初我创建了12个帖子。和 我已经查过第二页了。无论是显示所有帖子还是显示2个帖子。它只显示了2个帖子 it 'does paginate records' do 12.times {FactoryBot.create(:post, topic_id: topic.id, user: controller.current_user)} ge

Rspec 黄瓜奇怪路线问题

我正在rails中做一个简单的应用程序,没有使用cucumber 我有一个用户故事: Scenario: add new expense Given I am on the expenses page When I follow "new expense" Then I am on new expense page Then I fill in "expense_title" with "french fries" Then I fill in "expense_catego

Rspec 如何在spec_helper.rb中包含模块?

我正在设置回形针宝石的测试,部分说明如下: 在spec_helper.rb中,您需要匹配器: require "paperclip/matchers" 并包括模块: Spec::Runner.configure do |config| config.include Paperclip::Shoulda::Matchers end 我想知道我是否应该粘贴: Spec::Runner.configure do |config| config.include Paperclip::Shou

关于NitrousIO问题的rspec

我已经在ruby/rails的测试NitrousIO盒中安装了rspec。我正在尝试运行一个简单的测试,但出现错误: action@testbox-11814:~$ rspec thetest.rb /home/action/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_r

链式方法的Rspec匹配

有没有办法重写这个规范 expect(subject.root.name).to eq('DEMDataSet') expect(subject.root.elements[0].name).to eq('dAgency.Group') expect(subject.root.elements[0].elements[0].name).to eq('dAgency.02') expect(subject.root.elements[0].eleme

模型的Rspec测试

我有以下代码: def self.create_new_tenant(tenant_params, user_params, coupon_params) tenant = Tenant.new(:name => tenant_params[:name]) if new_signups_not_permitted?(coupon_params) raise ::Milia::Control::MaxTenantExceeded, "Sorry, new accounts n

Rails RSpec和cucumber测试显示每个测试的时间间隔

我对RubyonRails还很陌生。我不知道如何在每次测试中显示时间流逝。现在我正在研究RSPEC和黄瓜。我通过运行命令rake来运行所有测试。当每个测试执行时,我希望它显示一个计时器。我想显示每个特定测试所经过的时间。我们能像一个全局函数那样监听每个测试过程吗 请帮助我。您有两种选择,我建议您使用第一种,因为Rspec已经提供了这一选择 1.使用rspec--profile 这是Rspec的内置功能,将向您显示10个最慢规格的时间。阅读更多细节 2.使用全局前/后 您还可以创建自己的解决方案,

在rspec中检查复杂结果

我有一个方法get_something,它返回一个复杂的对象。我想检查这个复杂对象的特定公共属性是否为字符串 这就是我知道我可以测试的原因: require 'rspec/autorun' class MySubject ComplexObject = Struct.new(:type, :trustworthiness) def get_something ComplexObject.new('serious', 100) end end RSpec.describe

Rspec CI上的Capybara Poltergeist死客户端错误

我有一个Rails应用程序,使用Angular JS渲染视图,我正在使用Rspec、Jasmine和Capybara测试这个应用程序,使用PhantomJS通过Poltergeist作为驱动程序。本地所有测试都100%通过,但偶尔当有人推送应用程序并在TravisCI上执行测试时,至少有一个javascript测试会失败,并出现以下错误: Capybara::Poltergeist::DeadClient: PhantomJS client died while processing {

如何使mock消耗一些时间rspec

我希望rspec花费一定的时间,然后返回。例如,下面是一个逻辑行,表示我希望rspec模拟对some\u方法的调用,并在1秒后返回true。可能吗 expect(MyClass).to receive(:some_method).consume_time(1).and_return(true) 用来操纵时间。使用来模拟方法的主体 expect(MyClass).to receive(:some_method) do Timecop.travel(Time.now + 1) true e

Rspec have_标签与have_选择器

我已经成功地将have_选择器与RSpec(版本2.0.1)一起使用。我最近在have_tag上找到了文档。。。带着标签。。。与RSpec 1.3.2关联并希望使用它,但RSpec给出了错误: undefined method `has_tag?' for #<ActionController::TestResponse:0x105584e80> 我尝试了相同的语法,将“have_selector”和“with_selector”替换为“have_tag”和“with_tag”,在

水豚rspec更深入的测井?

在执行click_按钮后的某个时刻,我正在检索无法转储的singleton错误。rspec的所有输出告诉我: 1) home not logged in sign in should contain content with 'Add new charity Failure/Error: click_button "Install" TypeError: singleton can't be dumped # (eval):2:in `click_button' # ./spec/

Rspec 如何创建仅运行已更改的测试文件的保护配置监视?

关于如何在线执行此操作的信息不多,但在我的Guardfile中,我正在为我希望Guard监视的各种目录/文件设置监视。如何为已更新的已更改的spec/test文件指定监视,并仅在发生这种情况时运行该特定文件?谢谢 guard 'rspec' do watch(%r|^spec/.+_spec\.rb$|) { "spec" } end 当前,当spec目录下的文件发生更改时,上述程序将运行所有spec/测试。但我只想运行更改后的测试文件的测试 当前spec目录树

rspec未定义的方法`接收';对于expect语法

更改有效的测试,例如: describe "a" do it "does part A" do it "does not wait if not run in parallel" do ParallelTests.should_not_receive(:sleep) ParallelTests.wait_for_other_processes_to_finish end end end 到 给予 失败/错误:预期(并行测试)。不接收(:睡眠) 命

Rspec/capybara有_文本失败,但包括通过

我搞不懂这种奇怪的行为。 这会过去的 expect(html\u字符串)。包括重置url 这些将失败 expect(html\u字符串)。重置文本\u url expect(html\u字符串)。重置链接\u url 错误消息是预期会找到文本,但没有匹配项。所以这并不是一个忘记包含spec_helper的错误 我已经仔细检查了html\u字符串是否包含整个重置url。它们不是不可见的内容 另外,我还有其他规范(在同一规范文件中)使用have_text和have_link传递。 编辑:不知道为什么

Rspec 在水豚试验中,v-text-field改变时触发

我有这个规格: checklist_item_element.fill_in 'description', with: 'Changed description' page.find('body').click # to blur the input field checklist_item.reload expect(checklist_item.description).to eq('Changed description') 我有这个模板: v-text-field.habit-card

RSpec:获取将运行的所有示例的列表

我正在使用rspec3 在(:suite)之前的块中,我想获得将在当前规范运行中运行的所有示例的(嵌套的?)列表(即,当给定路径时),以便扫描它们的所有metatdata 背景:我希望能够扣除是否存在水豚规范,并在这种情况下启动前端服务器。您不必预先执行,将运行指定的代码 RSpec.configure do|config| 配置。当\u第一次\u匹配\u示例\u定义(:capybara)时 启动服务器 结束 结束 RSpec.description do 描述“非水豚”是什么 #仅运行此示例

Rspec 如何访问类的私有属性?

我无法访问对象的私有属性/变量以在rspec中进行测试 我了解到,您可以访问这样的私有方法: expect(CLASS.send(METHOD_AS_SIMBOL,PARAM1,PARAM2…)).to eq(EXPECTED_RESULT) 但我不能让它为属性工作 编辑: 我对不测试私有方法和属性的想法感到不舒服。我读过关于不测试私有代码是有益的,因为它迫使程序员简化类并遵循单一责任原则 但不知怎的,我觉得有必要这么做。这让我觉得,如果我100%地测试代码,我的代码将更加可靠。而且,我不喜

Rspec 如何在Chefspec中存根file.stat(“testfile”).uid?

我的配方中有一个代码::File.stat('/path/to/File').uid>=0,我想在chefspec中存根它 这就是我正在尝试的: 允许(文件).接收(:stat).并调用原始文件 allow(File.stat).to接收(:uid).with('/path/to/File')。并返回(0) 这给了我参数错误:参数数量错误(给定0,预期为1) 是否有办法存根File.stat,以便测试与uid的比较

RSpec update_属性预期失败,即使更新有效

我使用的主要是脚手架生成的RSpec规范,它正在失败,但不应该失败。以下是规格: describe "PUT update" do describe "with valid params" do it "updates the requested invoice" do invoice = Invoice.create! Invoice.any_instance.should_receive(:update_attributes).with({

通过sauce labs运行rspec测试时,不要在每次it阻塞后重置会话

为了更快的测试和访问更多的设备,我希望通过sauce实验室运行我的rspec capybara测试。但是,我在rspec中顺序运行it块时遇到问题。我通常在不同it块中测试页面的不同功能,如下所示: describe 'website ordering' do it 'should have items listed on page' do // test steps to check if item is on page end it 'should be able t

如何在RSpec模拟/存根中使用不同的参数值?

我的程序从网上下载一个zip文件,然后解析它。相关解析相关代码为: Zip::File.open("real_file.zip") do |zip_file| # do stuff end 在我的RSpec测试环境中,我希望将这段代码存根以解析一个伪/模拟文件,而不是真实的文件。具体来说,我想将参数值“real_file.zip”替换为“mock_file.zip” 我尝试了以下方法: allow(Zip::File).to receive(:open).and_return(Zip::F

Rspec 水豚罐头';无法按id查找元素

我的页面上有以下代码: <div class="row column filter-tab"> <div id="filter-button" class="button"><%= fa_icon 'filter' %></div> </div> 我收到了可怕的消息 Capybara::ElementNotFound: Unable to find css "#filter-button" 如果我在测试中放置断点,我可以

水豚;rspec fill_in不会填充所有字符

简单rspec测试: it "should login" do fill_in 'email', with: 'tom@domain.com' fill_in 'password', with: '123456' click_on I18n.t('ui.pages.login') expect(current_path).to eq('/projects') end 问题是:Chrome只输入“12456”并跳过“3”-无论我做什么 我尝试了以下方法: 在填写电子邮件

上一页 1 2 ...  6   7   8   9    10   11   12  ... 下一页 最后一页 共 27 页