Javascript 如何测试该方法是否已在jasmine中调用?

Javascript 如何测试该方法是否已在jasmine中调用?,javascript,testing,bdd,jasmine,Javascript,Testing,Bdd,Jasmine,我对监视茉莉有点困惑。我有一个这样的代码,但我不知道如何测试它 var params = { param1: "", param2: "link", param3: "1", param4 : "1" }; var func = new myFunction(params ); func.doSomething(); 如何测试已调用func.doSomething 这是我到目前为止写的测试 describe("Library", function() {

我对监视茉莉有点困惑。我有一个这样的代码,但我不知道如何测试它

var params = {
    param1: "",
    param2: "link",
    param3: "1", 
    param4 : "1"
};
var func = new myFunction(params );
func.doSomething();
如何测试已调用func.doSomething

这是我到目前为止写的测试

describe("Library", function() {

  beforeEach(function() {
  });

  it("should include correct parameters", function() {
      expect(params.param1).toEqual("");
      expect(params.param2).toEqual("link");
      expect(params.param3).toEqual("1");
      expect(params.param4).toEqual("1");
  });

  it("should show that method doSomething is called with zero arguments", function() {
          // I'm not sure how to write test for this.
  });
});

我想您应该使用
来调用()了。


如果spy函数只被调用过一次,请使用
将调用与
匹配器:

expect(mySpy).toHaveBeenCalledOnceWith('', 'link', "1", "1");

它结合了
调用时间(1)
调用时间()


《茉莉花3.6》即将推出,谢谢您的回答。这就是我所做的;函数doSomething();期望(函数doSomething).tohavebeincall();但是我有一个愚蠢的问题,这是否意味着func.doSomething()是在测试中调用的,而不是测试真实代码的行为?我对这一点很陌生,所以请原谅我问了一个愚蠢的问题。如果你想具体说明次数:expect(component.func)。toHaveBeenCalledTimes(1);
expect(mySpy).toHaveBeenCalledOnceWith('', 'link', "1", "1");