- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在类(class)中遇到以下属性问题。我也有一个在数据库级别强制执行的日期属性,存在为真:
验证 :date, presence: true
除此之外,我需要为以下两个属性强制组合唯一性
validates :name, uniqueness: { scope: :parent_id }
到目前为止...一切正常,但我想要一个测试唯一性的规范
它 { 应该 validate_uniqueness_of(:name).scoped_to(:parent_id) }
但是上面一行的问题是它会尝试通过使用随机名称和 parent_id 值在数据库中插入一条记录,让日期一为零。因此,它在数据库上失败。
我已经尝试在测试中执行 subject { build(:my_model) }
,但是 it 行仍在创建它自己的一个并且没有设置日期属性。
如何让 shoulda 使用我创建的主题?我错过了什么?
最佳答案
应该匹配器需要在数据库中创建一个单独的记录来测试它不是唯一的情况。它会跳过 rails 验证来执行此操作,但不能跳过您的数据库验证。如果您手动创建一个,它将使用它。将您的测试更改为:
subject { FactoryGirl.build(:my_model) }
it { should validate_uniqueness_of(:name).scoped_to(:parent_id) }
这在 shoulda matchers 文档中有更深入的介绍。 http://www.rubydoc.info/github/thoughtbot/shoulda-matchers/Shoulda/Matchers/ActiveRecord#validate_uniqueness_of-instance_method
关于ruby-on-rails - 如何更改 shoulda 匹配器的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076066/
我遇到了一个问题,我的模型上的自定义验证导致所有 shoulda 验证失败。 本质上: class User birthday errors.add(:birthday, "Some s
请帮忙: 我想用 minitest 来使用 shoulda。 这是我得到的异常: NoMethodError: undefined method `run_teardown_hooks' for #:
请帮忙: 我想用 minitest 来使用 shoulda。 这是我得到的异常: NoMethodError: undefined method `run_teardown_hooks' for #:
我有一个 User 模型,它有一个 items 的子关联。项目的 :name 对用户来说应该是唯一的,但它应该允许不同的用户拥有同名的项目。 Item 模型当前设置为: class Item < Ap
在 Rails Test Prescriptions 一书中(b10.0,第 176 页),有如下所示的单行断言示例: 应该“成功”{ assert_response :success } 这对我来说
我是单元测试领域的新手;我现在只使用单元测试大约 2 个月。当我在 Ruby 中进行单元测试时,我目前遵循 TDD 风格并使用 Test::Unit::TestCase。我还阅读了 RSpec 以及它
我正在使用一些Shoulda rspec匹配器来测试我的模型,其中之一是: describe Issue do it { should_not allow_value("test").for(:p
我正在尝试使用 rspec 和 shoulda 匹配器作为我的新测试框架,但我对如何获得 should validate_uniqueness_of(:attribute) 感到有些困惑。测试通过。这
我使用带有 shoulda-matcher 的 rspec-rails 来测试我的模型。这是代码: user_ticket.rb class UserTicket < ActiveRecord::Ba
使用 shoulda-matchers 的正确格式是什么?和 RSpec 的新 expect syntax ? 最佳答案 虽然人们当然可以将 shoulda-matchers 与新的期望语法一起使用,
这是我的: context "Create ingredient from string" do context "1 cups butter" do setup
用较小的代码示例再次问这个问题: # this is a dummy shoulda macro that creates a context def self.macro_context
我对模型的属性进行了以下验证: validates :on_ride_photo, presence: true, inclusion: { in: [true, false] } 然后我有以
我在类(class)中遇到以下属性问题。我也有一个在数据库级别强制执行的日期属性,存在为真: 验证 :date, presence: true 除此之外,我需要为以下两个属性强制组合唯一性 valid
我正在尝试让整个设置在我的 Mac 上与 Autotest/Growl/Shoulda 一起工作,以测试我正在为 Authlogic 开发的 gem。 .我过去经常使用 RSpec,但想切换到 Sho
我的 avatar_parts_spec.rb 中有一个 shoulda 匹配器,但我无法让它通过: 测试: require 'rails_helper' RSpec.describe AvatarP
我有一个模型,该模型在数据库级别具有唯一索引,并且模型验证检查范围为多列的唯一性。 # db level add_index :table1, %i[fk_belongs_to_id col1 col
在我的 device 模型中,我有 enum device_type: { ios: 1 , android: 2 } validates :device_type, presence: true,
我有一个自定义验证器(位于 app/validators/uri_validator.rb)用于: validates :link, uri: true 如何在我的规范中指定它? 理想情况下,我希望进
我有以下 Rspec 测试: describe Productlimit do before(:each) do @productlimit = Factory.create(:produ
我是一名优秀的程序员,十分优秀!