私は現在テストスイートを設定しようとしています。個人的にこれを前もって設定したことはありませんが、すでに実装されているプロジェクトに取り組んでいます。私はすべてがセットアップされている必要があると思うが、明らかに私は何かが欠けている。私が逃しているものを指摘する人を探しています。ここに私のコードです。Shoulda-helpers - Rspec
のMODEL SPEC:
require "rails_helper"
describe Subscriber do
context "validations" do
it { is_expected.to validate_presence_of(:first_name) }
it { is_expected.to validate_presence_of(:last_name) }
it { is_expected.to validate_presence_of(:email) }
it { is_expected.to validate_presence_of(:password) }
end
end
MODEL:
class Subscriber < ActiveRecord::Base
has_many :comments
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
VALID_PHONE_REGEX = /\d{10}/
validates :first_name, presence: true
validates :last_name, presence: true
validates :email,
:presence => true,
:uniqueness => true,
:format => VALID_EMAIL_REGEX
validates :phone_number,
:presence => true,
:uniqueness => true,
:numericality => true,
:format => VALID_PHONE_REGEX
def date_joined
created_at.strftime("%-m/%-d/%-y")
end
def expiration_date
(created_at + 1.year).strftime("%-m/%-d/%-y")
end
def days_till_expired
((created_at + 1.year) - DateTime.now).to_i/1.day
end
end
GEMFILE:
group :development, :test do
gem 'byebug'
gem "sqlite3"
gem "rspec-rails"
gem "capybara"
gem "factory_girl_rails"
gem "simplecov", require: false
gem "shoulda-matchers", require: false
end
ERROR:
NoMethodError:
undefined method `validate_presence_of' for # <RSpec::ExampleGroups::Subscriber::Validations:0x007fc257ea50d0>
# ./spec/models/subscriber_spec.rb:12:in `block (3 levels) in <top (required)>'
エラーはすべての4つで同じです。
私が必要としているのはこれだけです。より多くのコードを表示する必要がある場合はお知らせください。
どうしますか? – CuriousMind
haha知っているといいかもしれない。 1秒 – Bitwise