2013-04-15 38 views
0

我想讓jsMockito忽略我的參數輸入到函數調用中。JsMockito - 我如何讓jsmockito忽略參數

可以說我有以下代碼: -

變種mockedCommand =模擬(CoreCommand);

when(mockedCommand).parseCommand(myfakeInput,myfakeInput2,myFakeInput3).thenReturn(「Hello」);

我如何讓jsMockito忽略myFakeInput,myFakeInput2和myFakeInput3,只是返回「你好」?

謝謝。

回答

1

我設法使用JsHamcrest對象匹配器來解決我的問題。

var Employee = function() 
    { 
     this.getName = function(name) 
     { 
      return "Hello " + name; 
     } 

     this.updateAddress = function(emp) 
     { 
      return emp; 
     } 
    }; 

    test("a test", function() { 

     var mockObject = mock(Employee); 

     var fakeAddress = { 
     address1 : "Addr1", 
     address2 : "Addr2", 
     address3 : "Addr3", 
     }; 


    var nonMatchingAddress = { 
     address1 : "DifferentAddr1", 
     address2 : "DifferentAddr2", 
     address3 : "DifferentAddr3", 
     };   

     var realAddress = { 
     address1 : "123", 
     address2 : "456", 
     address3 : "789", 
     }; 

     // Ok 
     //when(mockObject).updateAddress(fakeAddress).thenReturn(realAddress); 
     //var argumentMatchingReturnResult = mockObject.updateAddress(fakeAddress); 
     //console.log(argumentMatchingReturnResult); 
     //equal(argumentMatchingReturnResult, realAddress, "passing in matching argument."); 

     // Not OK - return undefined 
     //when(mockObject).updateAddress(fakeAddress).thenReturn(realAddress); 
     //var argumentMatchingReturnResult = mockObject.updateAddress(nonMatchingAddress); 
     //console.log(argumentMatchingReturnResult); // comes out undefined 
     //equal(argumentMatchingReturnResult, realAddress, "passing in matching argument."); 

     // uses JsHamcrest.Matchers.object() here 
     // match any object here 
     // when(mockObject).updateAddress(JsHamcrest.Matchers.object()).thenReturn(realAddress); 
     // var result = mockObject.updateAddress(realAddress); 
     //console.log(result); 

     //notEqual(result, undefined, "ensure return result is not undefined"); 

     // uses JsHamcrest.Matchers.typeOf() here 
     when(mockObject).updateAddress(JsHamcrest.Matchers.typeOf('object')).thenReturn(realAddress); 
     var result = mockObject.updateAddress(realAddress); 
     console.log(result); 
     notEqual(result, undefined, "ensure return result is not undefined"); 

});