2012-02-18 30 views
5

Dưới đây là hành vi tôi đang tìm kiếm. Tôi muốn một Groovy MockFor ignore method gọi phương thức yêu cầu, thay vì phương thức bỏ qua gọi trực tiếp phương thức dontIgnoreMe().làm cách nào để tôi có phương pháp bỏ qua MockFor/StubFor groovy để sử dụng phương thức yêu cầu

Về cơ bản, tôi muốn thay thế dontIgnoreMe() tôi bằng mô hình và có ignoreMe() gọi mô hình (mà tôi đã thực hiện với metaClass) Có vẻ như các danh mục có thể là giải pháp tốt hơn. Tôi sẽ nhìn vào đó vào tuần tới, xem: 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] 

Trả lời

1

Đối với các nhà phát triển groovy tôi khuyên Spock Khung!

Sử dụng Spy như trong các mã dưới đây:

def "Testing spy on real object with spock"() { 
    given: 
    Ignorable ignorable = Spy(Ignorable) 
    when: 
    ignorable.dontIgnoreMe() >> { 'hey' } 
    then: 
    ignorable.ignoreMe() == 'hey' 
    ignorable.dontIgnoreMe() == 'hey' 
} 
Các vấn đề liên quan