僵尸的Rspec和Rails - 测试不起作用

时间:2013-07-10 14:44:28

标签: ruby rspec rails-for-zombies

我正在浏览僵尸课程的rspec rails,我在运行测试时遇到了麻烦,因为他们没有在我的App / models文件夹中读取我的ruby代码。我甚至试图将我称之为zombie.rb的ruby文件放入spec文件夹本身并且require_relative仍然测试失败可以有人请帮助我。我是一个新手,我发现TDD是学习高效编码的最佳和最快的方式。我的代码如下,我在zombie_spec.rb文件和zombie.rb文件中分别有:

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)>'

1 个答案:

答案 0 :(得分:0)

看起来您找到了Zombie模型,因为您收到来自ActiveRecord的错误,并且抱怨它无法在您的zombies表中找到数据库,这表明你还没有完成数据库迁移(或者有问题)。

第二个错误表示您没有要求任何定义Tweet的文件。