javascript - void方法测试javascript

标签 javascript jasmine

我有一个用 javascript 编写的方法,我正在使用 Jasmine 来测试该方法。
该方法是一个 void 类型,它正在调用另一个方法。

我必须测试该方法是否正在调用其他方法,当前方法返回 void。

我应该在期望子句中写什么来比较它。

sendMessage=function(data){
if(data!=null)
 {
  postMessage(data);
 }
}

Jasmine 代码:
describe('unit test void method', function(){
    it("sendMessage method should invoke the postMessage", function () {
           expect(sendMessage("hello");
    }) 
})

我应该把它和什么比较?

最佳答案

詹姆斯是对的。这是一个 spy 功能,尽管我使用了另一种方法。

在你的设置 beforeEach 函数的某个地方:

spyOn(YourObject, 'postMessage').and.callThrough();
YourObject是包含该功能的任何对象。

期望:
it('expects postMessage() to have been called', function () {

    // make the call to this function
    YourObject.postMessage();

    // Check internal function
    expect(YourObject.postMessage).toHaveBeenCalled();
});

关于javascript - void方法测试javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36402812/

相关文章:

javascript - 如何克隆不同颜色的 div block ?

javascript - Protractor :每次描述后打开新的网络驱动程序?

javascript - 如何将 Java 源代码交叉编译为 JavaScript?

javascript - 服务器镜像下载到客户端计算机文件夹中

javascript - HTML 和 Javascript 在 POST 表单值之前修改

javascript - jquery div 隐藏在第一次加载时不起作用

javascript - AngularJS:如何在配置阶段使用 $q 进行单元测试?

javascript - 如何使用 spyOn 测试 Promise.all 的功能

coffeescript - 使用不同的 andCallFake() 方法重用 Jasmine Spy

ruby-on-rails - 如何设置 Rails Angular 项目来测试 JS?