Jasmine监视对变量对象调用方法

Jasmine监视对变量对象调用方法,jasmine,Jasmine,考虑这一点: function () { var toast = new Toaster.ToastMessage({ title: Resources.Localised.COPY_Success, message: Resources.Localised.COPY_CaseSavedSuccess, severity: Toaster.ToastSeverity.Success, position: Toaster.ToastPosition.TopRig

考虑这一点:

function () {
  var toast = new Toaster.ToastMessage({
    title: Resources.Localised.COPY_Success,
    message: Resources.Localised.COPY_CaseSavedSuccess,
    severity: Toaster.ToastSeverity.Success,
    position: Toaster.ToastPosition.TopRight
  });

  toast.show();
}
在《茉莉花》中,有没有一种方法可以验证这个节目的名称?我不这么认为,事实上这是有道理的

我无法访问变量toast

间谍Toaster.ToastMessage,show;不起作用。 我玩过createSpyObj jasmine.createSpyObj'Toaster.ToastMessage',['show'];没有成功


谢谢。

您可以尝试监视Toaster的原型。ToastMessage:

你可以用

spyOn(Toaster.ToastMessage, "show");
然后在执行show方法后,使用:

expect(Toaster.ToastMessage.show).toHaveBeenCalledTimes(1);

你不能从函数中返回一些东西吗?比如一个布尔值,甚至是一个表示成功或失败的整数0或1?是的,尽管我在这里的观点是,我正在确定我希望该方法具有的行为。在C语言中,在这种情况下我会模仿一个属性或构造函数,所以我现在最好把我的烤面包机作为一个属性。
expect(Toaster.ToastMessage.show).toHaveBeenCalledTimes(1);