2012-03-14 14 views
0

私はgrailsに新しく、Serviceクラス用のユニットテストを作成しようとしていますが、このメソッドはドメインオブジェクトの基準を呼び出します。ユニットテスト用の評価基準

サービスクラスの次のメソッドでドメインの動作をどのように模擬しますか?あなたの基準を設定するためにモック()機能とmockDomainを使用することができますGrailsの2で

{def checkForDuplicates(firstName, lastName, gender, birthDate, accountId){ 
def duplicateIndividual = Individual.withCriteria{ 
      eq('firstName',firstName) 
      eq('lastName',lastName) 
      eq('gender',gender) 
      eq('birthDate',birthDate) 
      and{ 
       accounts{ 
        eq('id', accountId) 
       } 
      } 
    } 

    if(duplicateIndividual){ 
     log.error("Found duplicate for ${duplicateIndividual.firstName} 
     ${duplicateIndividual.lastName}") 
     return true 
    } 
    return false 
}" 

答えて

1

、あなたと同じように

@TestFor(MyService) 
@Mock(Individual) 

は、次に、あなただけの通常のドメインクラスを作成します。

http://grails.org/doc/latest/guide/single.html#unitTestingDomains

2をGrailsの前に、あなたはあなたのクエリのメタクラス、

Individual.metaClass.static.withCriteria = { [ i1, i2 ] } 
のようなものを変更することができます