1

ruby on railsを使っています。また、テストには minitest フレームワークを使用し、データベースには mongoid を使用します。モデルテストを書きたい。私のモデルは以下です:

class Identity
  include Mongoid::Document
  include OmniAuth::Identity::Models::Mongoid

  field :name
  field :email
  field :password_digest

  validates :name, uniqueness: true
end

モデルテストは次のとおりです。

describe Identity do
  it "must include OmniAuth::Identity::Models::Mongoid" do
    Identity.must_include OmniAuth::Identity::Models::Mongoid
  end

  it "should have name" do
    Identity.new.must_respond_to :name
  end

  it "should have email" do
    Identity.new.must_respond_to :email
  end

  it "should have password_digest" do
    Identity.new.must_respond_to :password_digest
  end

   it "should type of String" do
    Identity.new.name.type.must_equal "String"
  end
end

私の問題は、フィールドの型をテストすることです

it "should type of String" do
  Identity.new.name.type.must_equal "String"
end

フィールドのタイプをテストするにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

1

単なるヒント - 実際の質問に対する答えではありませんが、コードの実装の詳細をテストすることは賢明ではありません。変更される可能性が高いためです。テストによるシステム検証について考える場合、 どのように実装されていますが、それが何をするか、例えば。それがどのように動作するか

標準的な例は、Stack クラスの機能のテストです。アイテムをスタックからプッシュおよびポップしてサイズをチェックする代わりに、単にプッシュおよびポップして、空のスタックをポップすると適切な例外が発生することを確認する方がよいでしょう。そして当然、アイテムが後入れ先出し (LIFO) の順序で返されることを確認する必要があります。

したがって、あなたの場合、フィールドnameがどのようなタイプであるかをテストする代わりに、名前で何をするかをテストしてください

于 2013-03-08T09:53:39.753 に答える