2

私のgrailsプロジェクトには、ヘルパークラスを使用して応答をxmlとして取得するサービスクラスメソッドがあります。xml は、サービス クラス メソッドの応答として送信されます。

ServiceClass:-

class ItemService{
def getItem(Number) {
        def HelperClass helper = new HelperClass()
        def responseXml = helper.getMessage(Number)                 
        return responseXml
    }
}

このメソッドのテスト ケースを作成します。私のテストケースでは、モックしたい

    def responseXml = helper.getMessage(Number) 

これまでに書いたテストケースは次のとおりです。

class ItemServiceTest extends GroovyTestCase {
public final void testFindItem(){
        def service = new ItemService()

        def xml = "<Item><Number>123</Number></Item>"

        def mockJobServiceFactory = new MockFor(HelperClass)
        mockJobServiceFactory.demand.getMessage{ def str ->
            return xml
        }
        service.getItem().HelperClass =  mockJobServiceFactory.proxyInstance()

        def item = service.getItem()("123")
        assertNotNull(item)
    }

それでも、モックはテスト ケースで指定した xml を返しません。上記のアプローチで見られる問題はありますか?...事前の感謝

4

1 に答える 1

2

でオブジェクトをモックする場合、モックを使用するコードをクロージャーMockForで囲む必要があります。useこれを試して:

def service = new ItemService()

def xml = "<Item><Number>123</Number></Item>"

def mockJobServiceFactory = new MockFor(HelperClass)
mockJobServiceFactory.demand.getMessage{ def str ->
    return xml
}

mockJobServiceFactory.use {
    def item = service.getItem()("123")
    assertNotNull(item)
}
于 2012-08-23T14:48:25.877 に答える