Какую «логику проверки» я должен проверить? - PullRequest
1 голос
/ 17 сентября 2011

Я использую Ruby on Rails 3.0.9 и RSpec 2. Я хотел бы знать, какую «логику проверки» я должен проверить.То есть, если в моей модели у меня есть:

class User < ActiveRecord::Base
  validates :firstname
    :presence => true
end

Что я должен проверить следующее?

  1. "должно иметь действительное имя "
  2. " должно не иметь действительное имя "

Или я должен проверить оба?

Ответы [ 4 ]

3 голосов
/ 17 сентября 2011

Вы можете проверить оба, просто сделав это:

it "should validate presence of" do
   should validate_presence_of :firstname
end

Взгляните на совпадения musta для всех таких стандартных проверок Rails.

2 голосов
/ 17 сентября 2011

Я думаю, вы не должны проверять оба.Этого будет достаточно:

describe User do
  it { should validate_presence_of(:firstname) }
end
0 голосов
/ 19 декабря 2011

Вы также можете проверить на конкретные значения:

describe User do    
    context "validations" do
        it { should_not allow_value("admin").for(:firstname) }
        it { should allow_value("JohnDoe").for(:firstname) }
    end    
end
0 голосов
/ 17 сентября 2011

В принципе нет алгоритма проверки имен, потому что форма имен невероятно ориентирована на культуру. Таким образом, на самом деле вы должны избегать сложных проверок для чего-то вроде имени человека. Например, в некоторых местах / культурах нет фамилий, поэтому даже подтверждение их присутствия некорректно. Есть целый список других примеров, которые делают проверку имен действительно плохой идеей. Для получения дополнительной информации по вопросу проверки самих имен см. Мой ответ на этот вопрос .

При этом, как правило, при проверке любого поля я проверяю как действительные, так и недействительные данные. Я проверяю, что когда я устанавливаю в поле допустимое значение, метод .valid? возвращает true, а когда он недействителен, он возвращает false.

Как правило, вам не нужно составлять длинный список, вам просто нужно проверить

  • Типичный действительный и недействительный пример
  • Несколько крайних случаев
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...