1

user.rb の元のテストは次のようになります。

require "test/unit"
require "minitest/autorun"
require "rack/test"
require_relative "../lib/kimsin.rb"

ENV['RACK_ENV'] = 'test'

class UserTests < Test::Unit::TestCase
  include Rack::Test::Methods
  include Kimsin

  def app
    Sinatra::Application
  end

  def test_user
    @user = User.create :username => "barerd", :password => "abcdef"
    get "/users"
    assert_equal @user.username, "barerd"
    refute_match @user.password, "abcdef"
  end
end

User クラスがなかったため、テストが実行され、明らかに失敗しました。以下のように User クラスを追加したとき:

module Kimsin
  require "data_mapper"
  require "dm-migrations"

  DataMapper.setup :default, "sqlite:///users.db"

  class User
    include DataMapper::Resource
    include BCrypt

    property :id,       Serial
    property :username, String, :required => true
    property :password, String, :required => true
    property :salt,     String, :default => "876587349506434245565664566"
    property :crypto,   String, :default => BCrypt::Password.create password + salt
  end

  User.auto_migrate!
end

「テストなし」をスローします。エラー。実際、これだけでなく、すべてのテストで同じエラーがスローされるようになりました。dm-core を gem インストールした後に発生し、最初にエラーが発生したため、これは一般的に ruby​​ に関係していると思われます。

「RubyGems プラグインの読み込みエラー」/home/barerd/.rvm/gems/ruby-1.9.3-p125/gems/rubygems-bundler-0.2.8/lib/rubygems_plugin.rb」: そのようなファイルを読み込めません -- ruby​​gems_bundler/rubygems_bundler_installer (ロードエラー)」

しかし、他のアプリのテストを実行しようとすると、すべて正常に動作します。ところで、Windows 7 で rvm 1.11.6 (安定版) と ruby​​ 1.9.3p125 (2012-02-16 リビジョン 34643) [i386-cygwin] を使用しています。エラーの手がかりはありますか?

コア モジュール ファイル kimsin.rb は次のとおりです。

require "sinatra"
require "erb"
require "bcrypt"
require_relative "../lib/kimsin/version"
require_relative "../lib/kimsin/user"

use Rack::Session::Pool, :expire_after => 2592000

set :session_secret, "n9c0431qt043fcwo4ponm3w5483qprutc3q9pfw3r0swaypedx2qafec2qdomvuj8cy4nawscerf"

module Kimsin
  get "/" do
    title = "Kimsin?"
    erb :index, :locals => {:title => title}
  end
end
4

0 に答える 0