标签: rspec

何时使用RSpec let()?

我倾向于在块之前使用来设置实例变量.然后,我在我的示例中使用这些变量.我最近遇到了let().根据RSpec文档,它习惯了

...定义一个memoized帮助方法.该值将在同一示例中的多个调用之间缓存,但不跨示例缓存.

这与在块之前使用实例变量有什么不同?还有什么时候你应该使用let()vs before()

ruby rspec

442
推荐指数
7
解决办法
11万
查看次数

如何运行单个RSpec测试?

我有以下文件:

/spec/controllers/groups_controller_spec.rb
Run Code Online (Sandbox Code Playgroud)

在终端中使用什么命令来运行该规范以及在哪个目录中运行命令?

我的宝石文件:

# Test ENVIRONMENT GEMS
group :development, :test do
    gem "autotest"
    gem "rspec-rails", "~> 2.4"
    gem "cucumber-rails", ">=0.3.2"
    gem "webrat", ">=0.7.2"
    gem 'factory_girl_rails'
    gem 'email_spec'
end
Run Code Online (Sandbox Code Playgroud)

规格文件:

require 'spec_helper'

describe GroupsController do
  include Devise::TestHelpers

  describe "GET yourgroups" do
    it "should be successful and return 3 items" do

      Rails.logger.info 'HAIL MARRY'

      get :yourgroups, :format => :json
      response.should be_success
      body = JSON.parse(response.body)
      body.should have(3).items # @user1 has 3 permissions to 3 groups
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails ruby-on-rails-3

290
推荐指数
11
解决办法
15万
查看次数

如何在RSpec中运行单个测试/规范文件?

我希望能够运行单个spec文件的测试 - 例如,我正在编辑的一个文件. rake spec执行所有规格.我的项目不是Rails项目,所以rake spec:doc不起作用.

不知道这是否重要,但这是我的目录结构.

./Rakefile
./lib
./lib/cushion.rb
./lib/cushion
./lib/cushion/doc.rb
./lib/cushion/db.rb
./spec
./spec/spec.opts
./spec/spec_helper.rb
./spec/db_spec.rb

ruby testing rspec

271
推荐指数
11
解决办法
20万
查看次数

Rspec:"array.should == another_array"但不关心订单

我经常想要比较数组并确保它们以任何顺序包含相同的元素.在RSpec中有一个简洁的方法吗?

以下是不可接受的方法:

#to_set

例如:

expect(array.to_set).to eq another_array.to_set
Run Code Online (Sandbox Code Playgroud)

要么

array.to_set.should == another_array.to_set
Run Code Online (Sandbox Code Playgroud)

当数组包含重复项时,这会失败.

#sort

例如:

expect(array.sort).to eq another_array.sort
Run Code Online (Sandbox Code Playgroud)

要么

array.sort.should == another_array.sort
Run Code Online (Sandbox Code Playgroud)

当数组元素未实现时,这会失败 #<=>

ruby testing rspec

229
推荐指数
5
解决办法
6万
查看次数

iOS测试/规格TDD/BDD以及集成和验收测试

在iPhone上用于行为驱动开发的最佳技术是什么?什么是一些开源示例项目,证明了这些技术的合理使用?以下是我发现的一些选项:


单元测试

测试::单位样式

  1. OCUnit/SenTestingKit,iOS开发指南:单元测试应用程序和其他OCUnit参考中所述.
  2. 抓住
  3. GHUnit
  4. Google Toolbox for Mac:iPhone单元测试

RSpec风格

  1. 新西兰(也有嘲弄和期望)
  2. 雪松
  3. 带有UI自动化的Jasmine,如灵巧的'iOS验收测试规范所示

验收测试

风格

  1. UI自动化(适用于设备)

    更新:Zucchini框架似乎融合了Cucumber和UI Automation!:)

    旧博客帖子:

  2. UISpecUISpecRunner

  3. FoneMonkey

黄瓜风格

  1. 弗兰克iCuke(基于黄瓜会见iPhone谈话)

iphone rspec cucumber ios ios-ui-automation

229
推荐指数
3
解决办法
4万
查看次数

如何使用RSpec的should_raise与任何类型的异常?

我想做这样的事情:

some_method.should_raise <any kind of exception, I don't care>
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

some_method.should_raise exception
Run Code Online (Sandbox Code Playgroud)

......不起作用.

ruby rspec exception-handling ruby-on-rails

211
推荐指数
5
解决办法
9万
查看次数

缺少主机链接!请提供:host参数或设置default_url_options [:host]

我现在谷歌搜索大约90分钟仍然没有得到答案.我在哪里设置default_url_options?我已经将其设置为config.action_mailer.default_url_options在其他地方解决此相同的错误,但现在我在尝试在RSpec规范中使用URL帮助程序时遇到此错误.我不知道它在哪里设置default_url_options.

 Failure/Error: listing_url(listing).should match(/\/\d+-\w+$/)
 RuntimeError:
   Missing host to link to! Please provide :host parameter or set default_url_options[:host]
 # ./spec/routing/listing_routing_spec.rb:9:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

这段代码与emails/ActionMailer无关,它恰好需要一个URL而不是一个路径.

有任何想法吗?

rspec ruby-on-rails

171
推荐指数
10
解决办法
10万
查看次数

在rspec中测试模块

在rspec中测试模块的最佳实践是什么?我有一些模块包含在少数模型中,现在我只是对每个模型进行了重复测试(差异很小).有没有办法让它干涸?

ruby unit-testing rspec

170
推荐指数
10
解决办法
7万
查看次数

如何全局配置RSpec以保持'--color'和'--format specdoc'选项打开

如何在Ubuntu中为RSpec设置全局配置.

具体来说, - color和--format specdoc在我的所有项目中保持打开状态(即每次我在任何地方运行rspec).

ruby rspec colors configuration-files

155
推荐指数
4
解决办法
6万
查看次数

设置RSpec来测试gem(不是Rails)

使用添加的rspec-rails生成器来设置RSpec以测试Rails应用程序非常容易.但是如何添加RSpec来测试开发中的宝石?我不是在使用珠宝商或这样的工具.我只是使用Bundler(bundle gem my_gem)来设置新gem的结构并手动编辑*.gemspec.我还加入s.add_development_dependency "rspec", ">= 2.0.0"了gemspec并做了一个bundle install.

是否有一些很好的教程,接下来要做什么让RSpec工作?

testing gem rubygems rspec rspec2

152
推荐指数
4
解决办法
5万
查看次数