2013-07-10 3 views
0

Я прохожу через рельсы rspec для уроков зомби, и у меня возникают проблемы с запуском тестов, поскольку они не читают мой код ruby ​​в моей папке App/models. Я даже попытался поместить файл ruby, который я вызываю zombie.rb в саму спецификацию, и требует_relative, и все еще тест терпит неудачу, может кто-то, пожалуйста, помогите мне. Я новичок, и я нахожу, что TDD - лучший и быстрый способ научиться правильно кодировать код. Мой код ниже. Что у меня есть как в файле zombie_spec.rb, так и в файле zombie.rb соответственно:Rspec и Rails для Zombies-Test не работают

require_relative 'spec_helper' 
require_relative 'zombie' 

describe Zombie do 

    it 'is invalid without a name' do 

    zombie = Zombie.new 
    zombie.should_not be_valid 

    end 

    it 'include tweets' do 

    tweet1 = Tweet.new(status: 'Uuuuunhhhhh') 
    tweet2 = Tweet.new(status: 'Arrrrggggg') 
    zombie = Zombie.new(name: 'Ash', tweets: [tweet1, tweet2]) 
    zombie.tweets.should include(tweet1) 
    zombie.tweets.should include(tweet2) 

    end 

end 

и zombie.rb файл здесь

class Zombie < ActiveRecord::Base 
attr_accessor :Tweet 
validates :name, presence: true 
end 

Это результат теста я получаю

1) Zombie is invalid without a name 
    Failure/Error: zombie = Zombie.new 
    ActiveRecord::StatementInvalid: 
     Could not find table 'zombies' 
    # ./zombie_spec.rb:8:in `block (2 levels) in <top (required)> 


2) Zombie include tweets 
    Failure/Error: tweet1 = Tweet.new(status: 'Uuuuunhhhhh') 
    NameError: 
     uninitialized constant Tweet 
    # ./zombie_spec.rb:15:in `block (2 levels) in <top (required)>' 

ответ

0

похоже, ваш найти Zombie модель, потому что вы получаете ошибка от ActiveRecord, и она жалуется на то, что не может найти таблицу zombies в вашей базе данных, что говорит о том, что вы еще не выполнили миграцию базы данных (или возникли проблемы с ней).

Вторая ошибка указывает, что вам не нужен файл, который определяет Tweet.

+0

Я сделал рейк моей базы данных, но ошибка активной записи все еще происходит. – user2420858

+0

Вы просматривали свою базу данных, чтобы подтвердить, что таблица присутствует? –

+0

По http://stackoverflow.com/questions/16313304/activerecordstatementinvalid-could-not-find-table и другие, это сообщение об ошибке, которое вы получаете, когда база данных не настроена правильно. –

Смежные вопросы