RoR, RSpec - проблема с проверочным тестированием

Через генератор rspec (я использую rspec-1.3.0, rspec-rails-1.3.2 gems) ( сценарий ruby ​​/ сгенерировать предложение rspec_model section_id: целое число user_id: целое субъект: строка содержимое: текстовое состояние: тип строки: строка ) Я создал модель и спецификацию модели и запустил rake db: migrate и rake: test: prepare

После этого я начал работать над моей моделью:

require 'spec_helper'

describe Suggestion do
  before(:each) do
    @valid_attributes = {
      :section_id => 1,
      :user_id => 1,
      :subject => 'Inappropriate title',
      :content => 'The title of this section is inappropriate.',
      :state => 'new',
      :type => 'flag'
    }
  end

  it "should create a new instance given valid attributes" do
    Suggestion.create!(@valid_attributes)
  end

  it "should reject empty section_id attribute" do 
    empty_section_id_suggestion = Suggestion.new(@valid_attributes.merge(:section_id => ""))
    empty_section_id_suggestion.should_not be_valid
  end

  ...

Помимо 1-го " Я не сталкивался с этой проблемой раньше (иметь несколько одинаковых моделей и их спецификации, проходящие правильно). Похоже, что у него есть проблема с атрибутом: type (он говорит, что он не может быть пустым), даже если я передаю ему значение через @valid_attributes . Я пытался выполнить поиск в Google, но не нашел подобную проблему / решение.

Вот тест для: type attribute

it "should reject empty type attribute" do 
        empty_type_suggestion = Suggestion.new(@valid_attributes.merge(:type => ""))
        empty_type_suggestion.should_not be_valid
  end

Пожалуйста, проверьте его и дайте мне знать, что я делаю здесь неправильно.

Большое спасибо за помощь

Peter

1
задан Peter Podstreleny 31 August 2010 в 10:07
поделиться

1 ответ

Итак, в конце концов я нашел ответ на проблему, связанную с атрибутом :type:

http://www.gyrotechie.com/2008/09/activerecord-does-not-like -attributes-call-type/

Проблема заключалась в том, что type является зарезервированным именем поля для классов, наследуемых от ActiveRecord.

Я переименовал имя поля с помощью миграции и изменил все связанные файлы, и теперь все работает правильно.

1
ответ дан 2 September 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: