Тесты не проходят - PullRequest
       0

Тесты не проходят

0 голосов
/ 23 августа 2011

Я использую RSpec для тестов, и я не знаю, как получить зеленый цвет.

В этом случае у меня есть модель с именем "PartType", которая содержит атрибут с именем "цитата".

Значение для цитаты берется из формы, поэтому это будет строка.

Чтобы продемонстрировать, что вы можете перейти к консоли и наберите:

(1..1000).includes?("50") # false

, но ..

(1..1000).includes?(50) # true

И это значение может иметь десятичные дроби.Поэтому мне нужно было сделать «type_cast».

У меня есть это на моей PartType модели:

before_validation :fix_quotation, :if => :quotation_changed?

protected
  def fix_quotation
    self[:quotation] = quotation_before_type_cast.tr(' $, ' , '.' )
  end

Это работает, как и ожидалось, НО, когда вы идете на тесты, это не получается.

Вот мой part_type_spec.rb:

require 'spec_helper'

describe PartType do

  before(:each) do
    @attr = { :title => "Silver", :quotation => 100 }
  end

  it "should create a instance given a valid attributes" do
    PartType.create!(@attr)
  end

  it "should accept null value for quotation" do
    PartType.new(@attr.merge(:quotation => nil)).should be_valid
  end

  it "should accept 0 value for quotation" do
    PartType.new(@attr.merge(:quotation => 0)).should be_valid
  end

end

И, наконец, неудачные тесты:

Failures:

1) PartType должен создать экземпляр с заданными допустимыми атрибутами Failure / Error: PartType.create! (@ Attr) NoMethodError: неопределенный метод tr' for 100:Fixnum # ./app/models/part_type.rb:7:in fix_quotation '# ./spec/models/part_type_spec.rb:10:in `блок (2 уровня) в'

2) PartType долженпринять значение 0 для цитаты Ошибка / Ошибка: PartType.new (@ attr.merge (: quotation => 0)). should be_valid NoMethodError: неопределенный метод tr' for 0:Fixnum # ./app/models/part_type.rb:7:in fix_quotation '# ./spec/models/part_type_spec.rb:18:в блоке (2 уровня) в '

Завершено за 0,06089 секунды 3 примера, 2 ошибки

1 Ответ

1 голос
/ 23 августа 2011
  1. Ваши include? фрагменты неверны, я ошибся в первом, правда во втором.
  2. before_validation выполняется и quotation_before_type_cast ожидается равным String, но это Fixnum. Измените 100 на '100' и 0 на '0'.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...