2
我在我的grails項目中有一個服務類方法,它使用一個輔助類來將響應作爲xml獲取。然後將xml作爲服務類方法的響應發送出去。Groovy-grails嘲笑問題。無法模擬
服務類: -
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)
}
但儘管如此,模擬不回,我在測試speicified的XML案件。 您在上述方法中看到的任何問題?...高級謝謝
奏效...感謝.. – Npa
但我確實有一些測試情況下,我沒有使用「封使用」跟着我前面提到的方法。但是,嘲笑在這些情況下正確運作。在這裏看起來有些奇怪 – Npa
'service.getItem()。HelperClass = mockJobServiceFactory.proxyInstance()'這行是錯誤的。你不能給方法的局部變量的值或類分配一些東西。在其他情況下,您可能可以手動注入代理,但爲了模擬局部變量,您需要使用閉包。 – ataylor