Я прохожу учебник по рельсам и нахожусь в разделе 6.11
По какой-то причине я получаю 4 примера и 4 ошибки в rspec против 4 примеров и 1 ошибку (и, следовательно, 0), как в учебнике.
Я вижу это в моем rspec:
Failure/Error: @user = User.new(name: "Example User", email: "user@example.com")
ActiveRecord::StatementInvalid:
PGError: ERROR: relation "users" does not exist
Дело в том, что учебник идет по sqlite, но я перешел на postgres (как предлагалось в учебнике ранее), чтобы я мог также узнать о postgres. Это то, что вызывает проблемы? Разве activerecord не должен делать ее прозрачной относительно того, какую базу данных я использую?
Я создал правильные базы данных, обновил свой database.yml, запустил db: mgirate и команду
User.new(name: "Example User", email: "user@example.com")
отлично работает в изолированной консоли.
Любая помощь с благодарностью. Я пытаюсь остаться на вершине rspec здесь, для меня это самая сложная часть в изучении Rails. Такое ощущение, что вместо этого тратят 90% энергии на написание и отладку. (Единственным камнем преткновения / головокружительного головного мозга, с которым я столкнулся, были тесты rspec)
user_rspec.rb:
require 'spec_helper'
describe User do
before do
@user = User.new(name: "Example User", email: "user@example.com")
end
subject { @user }
it { should respond_to(:name) }
it { should respond_to(:email) }
it { should be_valid }
describe "when name is not present" do
before { @user.name = " " }
it { should_not be_valid }
end
end
-
В качестве дополнительного вопроса я обнаружил, что мои тесты rspec выполняются несколько раз? Я установил гем ruby-gntp и обнаружил, что рычание появляется несколько раз при каждом запуске теста с той же информацией.