`
hideto
  • 浏览: 2682215 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rspec_matchers真弱

    博客分类:
  • Ruby
阅读更多
使用Mocha时,发现Model的find方法的返回值变成true了
几经折腾,发现是rspec_matchers这个plugin的一段代码导致的:
def validate_uniqueness_of(attribute)
  return simple_matcher("model to validate the uniqueness of #{attribute}") do |model|
    model.class.stub!(:find).and_return(true)
    !model.valid? && model.errors.invalid?(attribute)
  end
end

find方法被stub为返回true了,靠!

还有一段代码:
def validate_confirmation_of(attribute)
  return simple_matcher("model to validate the confirmation of #{attribute}") do |model|
    model.send("#{attribute}_confirmation=", 'asdf')
    !model.valid? && model.errors.invalid?(attribute)
  end
end

很可爱的plugin
分享到:
评论

相关推荐

    rspec-collection_matchers, 集合基数匹配器,从rspec期望中提取.zip

    rspec-collection_matchers, 集合基数匹配器,从rspec期望中提取 RSpec::CollectionMatchers RSpec::CollectionMatchers 让你在一个例子中表达一个对象集合的预期结果。expect(account.shopping_cart).to have_

    rspec_sequel_matchers:RSpec续集匹配器

    rspec_sequel_matchers 从0.4.0版本开始,此gem仅与RSpec >= 3.x兼容,如果要与RSpec < 3.x使用,请使用0.3.x版本。 一些用于RSpec的续集匹配器,除了使用rspec之外,不使用其他gem自己进行续集。 因此,您可以...

    rspec-collection_matchers:从rspec-expectations中提取的集合基数匹配器

    items安装将此行添加到您的应用程序的Gemfile中: gem 'rspec-collection_matchers'然后执行: $ bundle或将其自己安装为: $ gem install rspec-collection_matchers基本用法首先,您需要rspec-collection匹配器。...

    active_model_serializers_matchers:用于测试ActiveModel的RSpec匹配器

    matchers' , '0.2.1' 然后执行: $ bundle或将其自己安装为: $ gem install active_model_serializers_matchers配置RSpec RSpec . configure do | config | config . include ActiveModelSerializersMatchers , :...

    json_matchers:验证您的JSON API

    马彻斯验证您的Rails JSON API返回的JSON安装将此行添加到您的应用程序的Gemfile : group :test do gem "json_matchers"end 然后执行: $ bundle或将其自己安装为: $ gem install json_matchers用法受到RSpec ...

    rspec-webservice_matchers:黑匣子网络应用程序测试

    安装$ gem install rspec-webservice_matchers你得到什么这些新的RSpec匹配器: 笔记be_up 寻找200,但最多可追踪4次重新导向be_fast 检查Google 分数是否大于WEBSERVICE_MATCHER_INSIGHTS_KEY 85。 WEBSERVICE_...

    xml_matchers:验证您的XML API响应

    规格spec/spec_helper require "xml_matchers/rspec"宣布在您认为适合项目结构的任何地方声明XML Schema: 例如。 spec/support/xml/schemas/locations.xsd证实使用match_xml_schema针对XML模式验证XML响应或字符串...

    rspec-roar_matchers

    有关实现的更多信息,请参见spec/roar_matchers/matchers_spec.rb 。 将会双向执行。 这意味着它将在以下情况下失败: 如果表示器中存在属性/集合/链接,但规范中不存在 如果规范中存在属性/集合/链接,但表示...

    action_mailer_matchers:ActionMailerMatchers提供了rspec匹配器以测试Rails的常见ActionMailer功能

    ActionMailerMatchers提供RSpec匹配器以测试常见的ActionMailer功能。 安装 将此行添加到您的应用程序的Gemfile中: group :test do gem 'action_mailer_matchers' , '~> 1.0' end 然后执行: $ bundle install...

    default_value_for-matchers:用于default_value_for gem的RSpec匹配器

    该gem是 gem的RSpec匹配器。 安装 将此行添加到应用程序的Gemfile中: group :test do gem 'default_value_for-matchers' end 然后执行: $ bundle 用法 您可以使用have_default_value_for匹配和with_value , ...

    db-query-matchers, 用于数据库查询的RSpec匹配器.zip

    db-query-matchers, 用于数据库查询的RSpec匹配器 db-query-matchers 用于数据库查询的RSpec匹配器。安装在你的应用程序中添加这一行,最好在你的test 组中:gem 'db-query-matchers'然后执行:bundle

    rspec 入门者学习

    6. **Matchers**: RSpec 提供了丰富的匹配器用于断言,如 `eq`, `include`, `respond_to` 等。 - 示例: ```ruby it "should include an element" do expect(my_array).to include(an_element) end ``` #### ...

    the rspec book.pdf

    书中详细介绍了Rspec的匹配器(matchers),它们用于检查对象是否满足特定条件,以及期望(expectations)和断言(assertions),这些是编写测试的基础元素。 在《RSpec Book》中,读者将学习到如何组织测试结构,...

    rspec-enqueue_sidekiq_job:enqueue_sidekiq_job Sidekiq的RSpec块匹配器

    enqueue_sidekiq_job RSpec块匹配器 安装 # Gemfile group :test do gem 'rspec-enqueue_sidekiq_job' end 用法 检查某个作业是否已排入队列。 expect { AwesomeWorker . perform_async } . to enqueue_sidekiq_...

    pundit-matchers:一组RSpec匹配器,用于测试Pundit授权策略

    一组RSpec匹配器,用于测试授权策略。 匹配器语法的灵感来自Thunderbolt Labs的。 安装 在测试组内的Rails应用程序的Gemfile中包括Pundit pundit-matchers matchers: group :test do gem 'pundit-matchers' , '...

    使用RSpec 测试Rails 程序.pdf

    - **测试数据验证**:使用RSpec提供的匹配器(matchers)来验证模型的数据是否满足预期的约束条件。 - **测试类方法和作用域**:编写测试来确保模型中的类方法和作用域正确工作。 - **匹配器**:了解RSpec提供的各种...

    ans-matchers:rspec 匹配器扩展

    ans-matchers rspec 匹配器扩展 have_out_of_range_validation have_association_db_index have_executable_sql have_out_of_range_validation “对导致 sql 级别超出范围的值进行验证错误” describe Model ...

    authentication_api:身份验证api

    认证API Ruby版本2.3.1 系统依赖rspec-rails factory_girl_rails shoulda_matchers 骗子database_cleaner jwt 加密配置关于短信的配置sms: company: 云片网 expires_in: 3600 # second数据库创建sqlite3 如何运行...

Global site tag (gtag.js) - Google Analytics