我只是在用RSpec测试Goliath API时遇到了奇怪的行为。我的一个测试如下所示:
require 'helper'
describe Scales::Dispatch do
it "should return a 404 if resource was not found" do
with_api(Scales::Server) do
get_request(:path => '/') do |client|
client.respons
据我所知,rspec要求:
describe '...' do
it '...' do
end
end
我想将此语法缩短为:
di '...' do
end
对于一次性规格。我已经看到了这一点,但这只是为了给示例方法添加别名
有没有办法做到这一点?还是短一点的一次性规格?我可以全局设置吗
thx它实际上不是一个别名,但是您可以定义一个di方法来执行您想要的操作,如下所示:
def di(example, &block)
describe example do
我有类似的方法:
def my_helper(builder, name, order)
options = {
builder.search_key => builder.search_attributes.merge('sort' => order)
}
link_to name, url_for(options)
end
Helper将一些参数(这里是简化的示例)添加到当前url和构建链接。
当我尝试用RSpec测试这个方法时,我得到异常ActionCon
Rubymine 6.3.2
此命令在控制台中工作:
/Users/batman/.rvm/rubies/ruby-2.0.0-p353/bin/ruby/Users/batman/work/marvin/marvin/bin/zeus-rspec/Users/batman/work/marvin/marvin/spec/models-需要团队城市/spec/runner/formatter/teamcity/formatter-格式规范::runner::formatter::formatte
我有一门课:
class SomeClass
def initialize(foo, bar)
end
end
我正试图创建一个双重验证,如下所示:
object_double(SomeClass.new)
这给了我一个错误:
wrong number of arguments (0 for 2)
我如何防止这种情况
我也试过这样做,尽管这对我来说没有多大意义
object_double(SomeClass.new, initialize: true)
您的SomeClass#i
我想在我的.rspec文件中使用一个名为TEST\u ENV\u NUMBER的环境变量
我最初把这一行放在.rspec
--format json --out ./tmp/$(TEST_ENV_NUMBER).json
但是,
创建的文件实际上是$(TEST\u ENV\u NUMBER).json
如何让--out实际评估和使用测试环境编号?您可以使用它
--format json --out <%= "./tmp/#{ENV[TEST_ENV_NUMBER]}.json" %>
我知道这类问题很多,但我尝试过一些解决方案,但都没有成功
以下是下拉列表的来源:
<select style="display: none;" name="Select_Company" id="Select_Company" class="company-list-select">
我也尝试过(我想这是行不通的,因为“请选择一家公司”文本在技术上是一个选项:
select 'ACME', from: "Please Select a Company"
所有这些都会导致“找不到元
我有以下情况。我有一个共享的示例,它在一些散列中作为数据传递,在另一个散列中作为预期数据传递。它看起来是这样的:
RSpec.describe "shared examples" do
shared_examples "matching hash" do |data, expected_data|
it 'matches' do
expect(data).to include (expected_data)
end
end
it_behaves_like
我是Ruby的新手,只是想学习它,遵循
我正在运行GitBash MINGW for window,运行时(rspec 2.4.0)
我得到的答复是:
You must use ANSICON 1.31 or later (http://adoxa.110mb.com/ansicon/) to use
colour on Windows
。。。但是我很喜欢使用MINGW。如果我使用ANSICON,我似乎无法获得
ssh-add
为了工作,我得到了错误
Could not open a c
我在这里发布了一个类似的错误,但所有这些都不能解决我的问题
我的文件“spec/request/news\u controller\u spec.rb”如下所示:
require 'spec_helper'
describe "NewsController" do
include Devise::TestHelpers
describe "GET /news" do
before(:each) do
@request.env["devise.mapping"]
标签: Rspec
factory-botmulti-tenant
我仍然很熟悉w/RSpec,在为我的多租户应用程序设置测试时遇到了一些问题
该应用程序在以下位置工作:
client1.example.com
client2.example.com
等等
在我的RSpec中,我做了以下工作:
let(:tenant) { FactoryGirl.create(:tenant, subdomain: "client1") }
let(:root_path) { "http://client1.example.dev:3000" }
before {
ten
我已经将capybara与rspec/rails一起用于非常简单的测试,但是有一个带有许多按钮的页面。我有一组按钮,如下所示:
<button class="add-item text-as-link btn" data-menu-item-id="50" data-menu-header-id="34">add menu item</button>
button = page.first(:xpath, '//button[@data-menu-item-id="50
如何定义一个方法create\u all,使我能够代替编写
describe "some spec" do
let(:a) { create :a }
let(:b) { create :b, :a => a }
...
写
describe "some spec" do
create_all
...
更具体地说:我必须在哪里定义它才能在描述上下文中使用它
它应该可以跨不同的规范文件工作。我认为您可以将方法定义放置在此文件中的任何位置(甚至在其他文件夹中-例如spe
我尝试测试的要点是加载一个页面,更新数据库中对象的状态,然后重新加载页面以查看对该对象的引用不再存在。大致如下:
before do
<some setup stuff that requires js: true)
<ObjectClass>.first.update(current_state: <new state>)
visit user_path(user)
end
it "should remove the reference to th
标签: Rspec
rspec-railsruby-on-rails-4.2
我的rails\u helper.rb中有以下内容:
RSpec.configure do |config|
# ...
config.before(:each, type: :controller) do
# SOMETHING
end
end
我想定义目录,这个东西将适用于这些目录(在我的情况下,仅适用于spec/controllers/api目录下的文件)
有机会做到这一点吗?您可以使用更专业的名称:
然后在spec/controllers/api中的RSpec示例中
我在ruby中有以下代码片段
lizard_cli_version = Gem::Version.new(`lizard --version`.scan(/(?:\d+\.?){3}/).first)
required_version = Gem::Version.new(Fastlane::Lizard::CLI_VERSION)
if lizard_cli_version < required_version
UI.user_error!("Your lizard version
我希望在控制台中打印场景名称。我在我的框架中使用Rspec、水豚和硒。
你能帮忙吗 最简单的方法是选择一个已经为您执行此操作的格式化程序。RSpec附带了许多内置格式化程序,文档将打印场景名称-。还有许多第三方格式化程序选项,或者您可以编写自己的自定义格式化程序-
使用tspec 2,我想动态创建一个要运行的rake任务,我们在RSpec 1中执行以下操作:
Spec::Rake::SpecTask.new(:client) do |t|
t.spec_files = FileList['spec/units/client/**/*_spec.rb']
t.spec_opts = spec_opts
end
但是现在Spec::Rake::SpecTask被替换了,有什么建议吗
关于现在的任务名称是task,如中所示
Rspec::Core::R
运行bundle exec rspec spec/时,出现以下错误:
`_app_views_demo_mailer_new_user_text_haml___514868986949697059_2155319320_502394691365870694': undefined local variable or method `courses_url' for #<#<Class:0x00000100eee3e0>:0x00000100eeb3c0> (ActionV
当我使用
user = mock(:user, :something => 'success')
我希望user.something返回'success',在很多情况下这就足够了。大多数情况下,我只需要一个名为user的“thing”,而不是在发送特定消息时返回和指定值
但有时候,这还不够。有时我希望有一个实际的用户,比如在User=User.new中,然后“mock”对象以便用户。有些东西返回我需要的任何东西?这样做怎么样:
user = User.new
user.should_re
标签: Rspec
deviserspec2capybara
我有以下测试:
it "I can Sign Up with Facebook" do
visit new_user_registration_path
click_link_or_button 'Sign up with Facebook'
# Validate
page.should render_template("registrations/signup_connect_to_facebook.html.erb")
end
在我得到的日志
使用Hartl的教程
我阅读了第3章,在使用rspec进行测试时没有遇到任何问题,但是在我完成了本节之后,合并了分支,等等-我不能再运行rspec测试了。我在第4章尝试进行第一组测试,但我得到以下错误:
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.10.1/lib/rspec
/core/configuration.rb:746:加载中“:C:/Sites/rails\u projects/sample\u
我一直在和中为web应用程序编写集成测试
当我使用命令行上的rake:name\u of_task在本地机器上运行测试时,它会工作,浏览器会弹出,一切正常。我的任务是:
desc "Run Integration Tests"
RSpec::Core::RakeTask.new(:integration_test) do |t|
t.pattern = 'spec/*'
t.rspec_opts = ["--format documentation", "--format docume
我想把Sandi Metz在“POODR”中的最终测试代码从Minitest翻译成RSpec。在第9章中,她检查“包含DiameterzableInterfaceTest”的任何对象是否具有“diameter”方法。在此,它检查DiameterDouble和Wheel是否都有“直径”方法:
但是模块中的所有“对象”组合都失败了。如果我使用“object”,它会说“未定义的局部变量或方法`object”。“对于@object”,它会说“预期的nil将响应:diameter。”对于“:object”
我想测试在初始化类的新实例时是否调用了某个方法。在我的项目中,我有以下代码:
class Journey
def initialize(entry_station)
@journey_complete = false
@entry_station = entry_station
self.start_journey
end
def start_journey
...
end
end
我想编写一个RSpec测试,检查初始化时对所有新旅程实例调用的
如果我有如下示例:
describe "A flux capacitor" do
it "should flux a lot" do
# how can I access the string object "A flux capacitor" in here???
...
end
end
如何访问所描述的字符串对象“通量电容器”?
我尝试了一些“描述类型”和“描述类”的排列
例如:
但这些总是一无所获。我做错了什么
谢谢,
-Bill这可能不是最好的方法,但您可以尝试:
ex
标签: Rspec
ruby-1.9.2ruby-on-rails-2
我在rspec邮件列表上问了这个问题,但没有得到回复,所以我想我应该试试这里
在Ruby1.9.2-p180上使用RSpec1.3.2和RSpecRails1.3.4以及Rails2.3.11
$ rake spec:models
他们都通过了。当我
$ rake spec:controllers
$ rake spec:views
他们都通过了。当我
$ rake spec:controllers
$ rake spec:views
他们都通过了。但是当我
$ rake spec
我试图找出如何在每次失败后调用spec助手中的方法。我觉得问这个问题很糟糕,因为这似乎是以前问过的问题,但我觉得这有点难以理解,因为我所发现的只是在after:each中检测失败
基本上,我想给自己设置一个通知,比如:
def you_failed
system "say -v Bad test failed"
end
您需要创建一个自定义格式化程序。查看Core::BaseFormatter和Core::BaseTextFormatter。您将发现一个失败的方法示例。在自定义格式化程
我正在使用RoR编写一个基本的应用程序,并且正在使用RSPec和Factory Girl进行测试。我的应用程序正在Dev和Prod上运行,但我无法通过所有RSpec测试。我怀疑这是RSpec的一种怪癖,或者它与虚拟属性的大规模分配有关。我会尽可能多地提供信息,但如果我遗漏了任何相关信息,请告诉我。我已经写了一段时间了,但这是我的第一篇文章,所以我相信我会忘记一些东西
编辑:我应该说,在我实现虚拟属性之前,所有测试都通过了,我在这个用户名字段上使用了JQuery ui自动完成
以下是我的设置:
轨
我正在使用RSpec测试一个API。我想指定一个特定端点返回一个布尔值,true或false。这是一个供其他系统和语言使用的API,因此它必须是一个实际的布尔值,而不仅仅是Ruby将计算为false或true
但是我看不出有什么方法可以做到这一点,因为Ruby中没有Boolean类型。虽然Ruby没有Boolean类,但它确实有and,其中true和false是唯一的实例。我相信你可以和这两个人中的任何一个进行测试,并且可以很好地进行测试
true.is_a? TrueClass # =>
我已经阅读了,并搜索了许多其他地方,但我很难理解Rspec的let和let之间的区别
我已经读到,let在需要时才初始化,并且它的值仅在每个示例中缓存。我也读过let强制变量立即存在,并强制调用每个示例。我想因为我是新来的,我很难理解这与下面的例子有什么关系。为什么:m1需要设置为let断言m1.页面上存在内容,但是可以使用设置:user,让断言页面包含文本:user.name
subject { page }
describe "profile page" do
let(:u
在使用let进行RSpec测试时,我遇到了一个奇怪的行为。我从来没有遇到过使用let的问题,所以这就是为什么这么奇怪的原因。在以下测试中,my_modellet定义返回零:
describe '.process' do
let(:my_model){ Fabricate(:my_model) }
it 'doesnt work' do
# my_model returns nil but it should be returning the fabricated model
就我所知,我的路由文件-对于创建site.com/users/create的全新项目,我会:
StartPoint::Application.routes.draw do
resource :users
end
但在运行我的测试时,我得到:
INFO - Running: spec/routing
/home/adam/.rvm/gems/ruby-2.0.0-p247/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:896:i
我一直在成功地运行这个命令,直到我正要启动文件中的最后一个规范(请描述“DELETE#destroy”do)。现在,当我运行这个问题标题中列出的命令时,我的终端似乎冻结或超时
这是我的相关文件和终端输出
Gemfile
source 'https://rubygems.org'
'ruby' '2.0.0'
gem 'rails', '3.2.14'
gem 'pg'
gem 'devise'
gem 'composite_primary_keys'
gem 'bootstrap-sass'
标签: Rspec
scopefactory-bot
我想循环一组对象,这些对象是由工厂女孩在it块之外构建的
例如:
before :each do
@array = build(:super_cool_array_of_objects)
end
context 'I want access to @array here' do
@array.each do |item|
it 'tests item for some interesting things' do
item.should be_true # my
我哪里做错了
describe '#update' do
let(:new_name) { Faker::Lorem.word }
let(:request) { patch :update, id: parent_folder.id, folder: { name: new_name, parent_id: nil, user_id: user.id } }
it 'should change the name' do
expect{ request }
我正在用JRuby为JDBC编写一个过于简单的包装器。本质上,我想要一个包装类DBW,它接受一个连接字符串和一个可选的初始化块
require 'java'
class DBW
def initialize (connection_string, &optional_init_block)
if optional_init_block
yield
end
@connection_string = conn
RubyMine是否可以配置为为RSpec提供代码完成?如果是的话,你能告诉我怎么做吗?在发布这个问题之前,我确实试图找到一个解决方案,但没有成功。谢谢大家! 按照这里的说明:()按照这里的说明:())
我对Rspec有点陌生,这可能是一个很容易回答的问题
尝试运行测试时出现以下错误:
Failure/Error: expect(view).to render_template(:partial => "_ad_column", :count => 2) expecting _ad_column to be rendered 2
标签: Rspec
timeoutcapybaragemfile
我得到了这个错误
undefined method `default_max_wait_time=' for Capybara:Module (NoMethodError)
当我尝试运行功能规格时,例如
$rspec规范/功能/自动策略/3\u步骤\u最小\u基础\u规范.rb
...
Performance on MRI may be improved with the concurrent-ruby-ext gem. Please see http://concurrent-ruby.co
标签: Rspec
capybaraambiguous
嘿,伙计们,我这里有一段漂亮的代码,我想做的是在规范范围内单击值为“Personal data change erstellen”的提交按钮。唯一的问题是,我像其他5个提交按钮一样具有相同的值,我试图在一个方法中涵盖所有这些。有没有人建议如何让它运行,这个模棱两可的错误简直要了我的命。请参阅下面的代码
<legend>Handynummer</legend>
<div class="form-group">
我正在尝试使用bundle exec rspec检查规范测试,以进行以下测试
require 'spec_helper'
describe 'my_recipe::default' do
windows_platforms = {
windows: %w(2008R2 2012 2012R2 2016 2019)
}
windows_platforms.each do |platform, versions|
versions.each do |version|
我目前正在寻找在内存中设置一个可以在整个套件中使用的哈希
我期待着做以下事情
RSpec.configure do |config|
config.before(:suite) { $user_tokens = initialize_my_stuff }
end
但是,当我去运行我的套件时,我从我的一个规范中得到一个错误,错误如下:
NoMethodError:nil:NilClass的未定义方法'each'
它正在尝试运行以下命令:
$user_tokens.each do |user,
我有一个应用程序,它不会为表格单元格分配唯一ID。给定第1列中的唯一文本、第2列中的管理链接和第3列中的删除链接,我如何告诉capybara单击包含文本“Foo”的同一行中的管理链接
Foo manage delete
Bar manage delete
当与.should子句一起使用时,我了解了如何使用find('tr',text:“Foo”)。我看到了如何单击包含文本“manage”的链接。但我不知道如何组合它们来查找一行,在该行中,单击一个链接。我已经测试过了,它应该可以工作
标签: Rspec
capybaracapybara-webkit
我刚刚更新了Capybara 0.13.0和Rspec 2.12.0,现在我的Capybara webkit测试只工作了大约1/5的时间
所谓不工作,我的意思是测试的内容根本没有运行。在那次测试中它就僵住了。Ruby进程只使用了0.1%的cpu,它似乎没有做任何事情
此外,我的一些js:true测试似乎在100%的时间内都能正常工作
当我在Firefox中运行测试时,一切正常
还有其他人有这个问题吗?关于如何调试它有什么想法吗?您有没有查看过水豚的测试方法,例如?
我采用了一个应用程序,它有一些测试覆盖范围,但大多数测试质量参差不齐。该应用程序的大部分都使用JSON api。我本来打算写请求规范,但验证并发送带有验证数据的帖子并不是件小事。对于测试JSON api,控制器规范是否更合适
比如说,
match 'api/login-mobile' => 'api#login_mobile', :as => :login_mobile, :defaults => {:format => 'json' }
这看起来很简单,但需要一个与
在使用guard rspec在Rails 4项目中运行guard时,我偶尔会在vim中打开/关闭文件时看到以下错误。我尝试过升级/降级guard、guard rspec、pry和其他库,但运气不佳
ruby 2.0.0p247(2013-06-27修订版41674)[x86_64-linux]
捆绑包版本1.3.5
Guard版本2.1.1
下面是我每隔几次测试运行看到的stacktrace:
Error: can't modify string; temporarily locked
/h
我们将Puppet(v3.6.2)与Foreman enc一起使用,并且有许多自定义模块,其模式如下图模块所示
#mkdir/manifests/init.pp
class mkdir ($path, $mode) {
class {'mkdir::file': }
}
#mkdir/manifests/file.pp
class mkdir::file {
file {$mkdir::path:
ensure => 'directory',
mode =&g
我的规范在ruby 1.9.2中运行良好。但是在升级到Ruby 2.1.5之后,当我运行规范时,会出现以下错误:
$ rspec spec/models/user_spec.rb
/local/rvm/gems/ruby-2.1.5/gems/activerecord-3.2.17/lib/active_record/connection_adapters/abstract/connection_pool.rb:9:in `<module:ActiveRecord>': uninit
轨道5.2.2
当我需要在测试中添加帮助器时,我使用类型帮助器:
RSpec.describe Utilities, type: :helper do
end
当我需要添加一些请求(如pach、delete或post)时,我使用类型请求:
RSpec.describe 'AuthenticationPages', type:
:request do
end
但当我需要同时使用类型助手和请求时,应该是什么代码
对于示例代码:
RSpec.describe Utilities, type:
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 26 页