如何存根茉莉花模拟对象的方法?
根据茉莉花文档,模拟可以像这样创build:
jasmine.createSpyObj(someObject, ['method1', 'method2', ... ]); 你如何保留这些方法之一? 例如,如果你想testing一个方法抛出一个exception时会发生什么,你将如何做?
 您必须将method1 , method2为EricG评论的,但不能与2.0版中的andCallThrough() (或and.callThrough() )一起使用。 它将委托给真正的实施 。 
 在这种情况下,您需要使用和and.callFake()并传递您想要调用的函数(可以抛出exception或任何您想要的): 
 var someObject = jasmine.createSpyObj('someObject', [ 'method1', 'method2' ]); someObject.method1.and.callFake(function() { throw 'an-exception'; }); 
然后你可以validation:
 expect(yourFncCallingMethod1).toThrow('an-exception'); 
 如果您使用的是打字稿,将该方法作为Jasmine.Spy进行投射会Jasmine.Spy 。 在上面的答案(奇怪,我没有代表征求意见): 
 (someObject.method1 as Jasmine.Spy).and.callFake(function() { throw 'an-exception'; });