2012-02-18 12 views
5

Poniżej znajduje się zachowanie, którego szukam. Chcę, aby Groovy MockFor ignore method wywoływał metodę popytu, zamiast metody ignorowania, bezpośrednio wywołującej metodę dontIgnoreMe().Jak uzyskać ciekawą metodę ignorowania MockFor/StubFor w celu użycia metody popytu

Zasadniczo chcę zastąpić dontIgnoreMe() mnie z fałszywą próbą i mieć ignoreMe() zadzwonić do próbnego (co zrobiłem z metaClass) Wygląda na to, że kategorie mogą być lepszym rozwiązaniem. Zajrzę do tego w przyszłym tygodniu, patrz: 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] 

Odpowiedz

1

Dla porywające programistów Gorąco polecam Spocka Framework!

Zastosowanie Spy jak w poniższym kodzie:

def "Testing spy on real object with spock"() { 
    given: 
    Ignorable ignorable = Spy(Ignorable) 
    when: 
    ignorable.dontIgnoreMe() >> { 'hey' } 
    then: 
    ignorable.ignoreMe() == 'hey' 
    ignorable.dontIgnoreMe() == 'hey' 
} 
Powiązane problemy