2

次のようなドメイン コンスタレーションが与えられた場合:

abstract class A { 
    def myService 
    def beforeInsert() { 
        myService.doIt() 
    } 
} 

class B extends A { 
    def beforeInsert() { 
        super.beforeInsert() 
    } 
}

次のメソッドをモックすることは可能ですか? - B の beforeInsert()? - A の beforeInsert()?

4

2 に答える 2

1

単体テストでサービス メソッド呼び出しをオプションにする場合、最も簡単な方法は、null セーフ メソッド呼び出しを使用することです。

abstract class A { 
    def myService 
    static transients = ['myService']
    def beforeInsert() { 
        myService?.doIt() 
    } 
} 

class B extends A { 
    def beforeInsert() { 
        super.beforeInsert() 
    } 
}
于 2015-05-29T00:35:01.373 に答える
0

単体テストでフラッシュせずに B オブジェクトを保存するか、metaClass で beforeInsert をオーバーライドします。

B.metaClass.beforeInsert = {-> }
于 2012-11-16T18:28:59.413 に答える