User という Domain クラスがあります。テストを実行するとき、次のようにして User クラスの get メソッドを再定義したかった
User.metaClass.static.get = {長い ID -> [username:"joe", id:id]}
しかし、上記を適用しても、呼び出したときに影響がないようです
ユーザー.get(2)
get() や list() などの static Domain GORM メソッドで metaClass を使用して、動作を変更できますか? ありがとう
ここに私のテストケースがあります:
@テスト
ボイドテスト(){
User.metaClass.static.get = { id -> [username:"joe", id:id]} def user = User.get(3) assert user.username == "joe"
}
NPE Cannot get property 'username' on null object を取得します
私は実際にgroovy MockForを使ってそれを行うことができます
def mockControl = new MockFor(User.class) mockControl.demand.get {id -> return [username:"joe"]} mockControl.use { def user = User.get(3) assert user.username == "joe" }