安装Shoulda
gem install thoughtbot-shoulda -s http://gems.github.com
在test_helper里添加:
require 'rubygems'
gem 'thoughtbot-shoulda'
require 'shoulda'
并让Rspec支持Shoulda
首先,确保Rspec是最新的
gem install rspec
gem install rspec-rails
在spec_helper里
require 'rubygems'
gem 'thoughtbot-shoulda'
require 'shoulda'
就可以在rspec下利用Shoulda的sugar了
示例:
describe User do
it { should validate_presence_of(:name) }
it { should validate_presence_of(:phone_number) }
%w(abcd 1234).each do |value|
it { should_not allow_value(value).for(:phone_number) }
end
it { should allow_value("(123) 456-7890").for(:phone_number) }
it { should_not allow_mass_assignment_of(:password) }
it { should have_one(:profile) }
it { should have_many(:dogs) }
it { should have_many(:messes).through(:dogs) }
it { should belong_to(:lover) }
end
分享到:
相关推荐
RSpec 的设计目的是让测试更加自然和易读,使得开发人员能够更好地理解和编写测试用例。 #### 二、RSpec 与 BDD **行为驱动开发 (BDD)** 是一种软件开发方法论,它鼓励团队成员(包括开发者、QA 和非技术人员)...
1. **Gem 安装**:通过 Ruby 的包管理工具 Gem 来安装 RSpec,命令如下: ```bash gem install rspec ``` 2. **项目集成**:将 RSpec 添加到项目的 Gemfile 文件中: ```ruby group :test do gem 'rspec' end...
- **易于调试**:RSpec支持多种断言库,如Shoulda、RSpec::Expectations等,这些工具可以帮助开发者快速定位问题。 - **支持多种测试类型**:RSpec不仅支持单元测试,还支持集成测试和行为测试,有助于全面覆盖应用...
- **灵活**:RSpec 支持多种方式来组织测试,并允许自定义匹配器和共享上下文等特性。 - **集成性**:RSpec 可以很好地与其他 Ruby 工具(如 Cucumber 和 FactoryBot 等)协同工作,为开发者提供全面的测试解决方案...
##在 Rails 中快速设置 RSpec,使用 Capybara、Factory Girl、Database Cleaner、Shoulda-matchers 等... 在命令行中,运行rails new app_name -T (关闭默认测试单元) 将 Gems 添加到 gemfile,然后捆绑。 gem '...
您想在测试中使用哪些匹配器您正在使用RSpec,以便它可以使这些匹配器在您的示例组中可用Rails应用如果您使用的是Rails应用程序,只需将其放在spec/rails_helper.rb的底部(或选择在支持文件中的底部): Shoulda :...
RSpec is a popular tool for TDD with ruby. In this talk, we start with subject and let. Then we dive into should_receive vs. asserting side effects. Last part of this talk covers some traps and ...
shoulda-matchers, 提取的测试匹配器的集合应该应该 应该匹配 匹配器提供了RSpec-和minitest兼容的一个接口,用于测试公共 Rails 功能。 否则,这些测试将会更长。更复杂和容易出错。查看最新版本( 3.1.1 )的正式...
#fakes-rspec 这是一个在使用时帮助使用的库。 它添加了一堆方便的方法和匹配器,以帮助使用 AAA 风格的隔离库。 ##安装 gem install fakes-rspec ... it "should be able to create a fake" do item = fake en
rspec-instafail 立即显示失败的规格。 与往常一样,将通过的规格显示为绿点。 升级到1.0? 添加--format progress输出....................................................*....1) ApplicationController#sign_...
RSpec ::参数化 在rspec中支持简单的参数化测试语法。 # Nested Array Styledescribe "plus" do where ( :a , :b , :answer ) do [ [ 1 , 2 , 3 ] , [ 5 , 8 , 13 ] , [ 0 , 0 , 0 ] ] end with_them do it "should ...
RSpec可以与FactoryBot、Shoulda等其他测试工具结合使用,提升测试的效率和质量。 总结来说,RSpec是一个强大的测试框架,它以人类可读的语言描述代码行为,简化了测试编写,增强了代码质量。通过深入理解和熟练...
`-f doc`选项让RSpec以文档格式输出测试结果,便于理解和调试。 总的来说,Ruby的RSpec和RestClient组合提供了一个强大且灵活的工具链,用于测试和验证RESTful服务。通过JSON_expressions,你可以有效地比较和验证...
本教学材料"RSpec_teaching_material"旨在帮助初学者和有经验的开发者深入理解RSpec,并提升其在实际项目中的应用能力。 首先,RSpec的核心概念是`Example`,它通过`it`关键字定义,描述了代码的某个特定行为。例如...
RSpec Rails示例 一个以Rails应用程序形式的RSpec速查表。 了解如何从模型代码库中专业测试Rails应用程序对于那些想知道如何使用RSpec测试Rails应用程序的开发人员来说,这是一个简短而全面的参考。 在这里,您将...
此外,RSpec 支持许多扩展,如 `factory_bot` 用于生成测试数据,`capybara` 进行网页功能测试,`database_cleaner` 确保数据库的清洁。 总之,RSpec 为 Ruby 开发者提供了一种强大的工具,使得测试变得更为直观和...
总的来说,Cucumber和RSpec是Ruby开发中不可或缺的测试工具,它们共同为项目提供了强大的测试支持,确保了代码的稳定性和可靠性。通过学习和熟练掌握这两个库,开发者能够更好地理解和改进他们的应用程序,同时提高...
2. **强大的测试支持**:RSpec提供了丰富的断言和匹配器,能够覆盖各种测试需求。 3. **更好的代码设计**:通过TDD/BDD,开发者更倾向于编写模块化、可测试的代码,从而提升代码质量。 4. **降低维护成本**:当功能...