* RailsでMondoid使用時のユニットテスト [#ab9787b9]
#setlinebreak(on);
注) ここではモデルのテストについてのみ記載する。
- 参考
-- https://github.com/Aethelflaed/mongoid-fixture_set
- 関連
-- [[Ruby on Rails]]
-- [[Railsメモ]]
#contents
** Gemfileに追記 [#a3fd91c8]
#mycode2(){{
gem 'mongoid-fixture_set'
}}
&br;
** インストール [#u1448a1e]
#myterm2(){{
bundle install --path vendor/bundle
}}
&br;
** テストデータの準備 [#rfb4de37]
例) test/fixtures/books.yml
#mycode2(){{
one:
name: "book1"
price: 1008
note: "note1"
two:
name: "book2"
price: 2016
note: "note2"
}}
&br;
** テストクラスの記述 [#e4264188]
#mycode2(){{
require 'test_helper'
class BookTest < ActiveSupport::TestCase
# この2行を追記(コントローラのテストの場合も同様)
include Mongoid::FixtureSet::TestHelper
self.fixture_path = "#{Rails.root}/test/fixtures"
#----------------------------
# 初期処理
#----------------------------
def setup
@book1 = books(:one)
end
#----------------------------
# テストを記述
#----------------------------
test "test1" do
cnt = Book.where(name:"book1").count
assert_equal 1, cnt, "検索結果件数が期待値と異なります"
books = Book.where(name:"book1")
assert_equal @book1.name , books[0].name , "name が期待値と異なります"
assert_equal @book1.price, books[0].price , "price が期待値と異なります"
end
end
}}
&br;
** テストの実行 [#wefd48e8]
#myterm2(){{
$ rake test:models TEST="test/models/book_test.rb"
Run options: --seed 38317
# Running:
.
Finished in 0.034300s, 29.1543 runs/s, 87.4630 assertions/s.
1 runs, 3 assertions, 0 failures, 0 errors, 0 skips
}}