我目前正在尝试设置我的测试套件,而且我似乎无法让应该帮助工作。我以前从未亲自设置过这个,但我正在开展一个已经实现它的项目。我认为一切都是如何设置的,但显然我错过了一些东西。寻找有人指出我所缺少的东西。这是我的代码。
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
模特:
class Subscriber < ActiveRecord::Base
has_many :comments
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[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
错误:
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)>'
所有四个错误都是一样的。
据我所知,这就是我所需要的一切?如果您需要查看更多代码,请告诉我?
答案 0 :(得分:1)
您是否在rails_helper.rb中添加了以下内容?
Shoulda::Matchers.configure do |config|
config.integrate do |with|
# Choose a test framework:
with.test_framework :rspec
# Choose one or more libraries:
with.library :rails
end
end
此外,为什么你要求false?,你应该从你的gemfile中删除require false。 的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