2012-02-18 6 views
5

以下は私が求めている動作です。 Groovy MockFor ignore methodは、dontIgnoreMe()メソッドを直接呼び出すignoreメソッドの代わりに、要求メソッドを呼び出すようにします。デモメソッドを使用するためのGroovy MockFor/StubFor ignoreメソッドの入手方法

本来、dontIgnoreMe()私をモックに置き換えて、ignoreMe()をモック(私はmetaClassで行っています)と呼んでいます。カテゴリのように見えます。なるほど、その次の週に見てみましょう:私は強くスポックフレームワークをお勧めしますグルーヴィーな開発者のためにgroovy nabble feed

import groovy.mock.interceptor.MockFor 

class Ignorable { 
    def dontIgnoreMe() { 'baz' } 
    def ignoreMe() { dontIgnoreMe() } 
} 

def mock = new MockFor(Ignorable) 
mock.ignore('ignoreMe') 
mock.demand.dontIgnoreMe { 'hey' } 

mock.use { 
    def p = new Ignorable() 
    assert p.dontIgnoreMe() == 'hey' 
    assert p.ignoreMe() == 'hey' 
} 

Assertion failed: 

assert p.ignoreMe() == 'hey' 
     | |   | 
     | baz  false 
     [email protected] 

答えて

1

を!

次のコードのように使用Spy

def "Testing spy on real object with spock"() { 
    given: 
    Ignorable ignorable = Spy(Ignorable) 
    when: 
    ignorable.dontIgnoreMe() >> { 'hey' } 
    then: 
    ignorable.ignoreMe() == 'hey' 
    ignorable.dontIgnoreMe() == 'hey' 
} 
関連する問題