首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsMockito:如何运行回调发送到模拟?

jsMockito:如何运行回调发送到模拟?
EN

Stack Overflow用户
提问于 2014-03-03 13:17:34
回答 1查看 131关注 0票数 0

我正在学习如何使用jsMockito编写完美的代码。那么,您能告诉我如何运行为服务提供的回调吗?

这是我的班级:

代码语言:javascript
复制
function MyClass(service) {
    this.service = service;
}

MyClass.prototype.doSomething = function() {
    this.service.doIt(function() {
        console.log("How to run this function while running tests?");
    })
}

这是我的测试:

代码语言:javascript
复制
var MyClassTest = TestCase("MyClassTest");

MyClassTest.prototype.testMyClass = function() {
    this.service = mock(Service);
    this.myClass = new MyClass(this.service);
    this.myClass.doSomething();
}

因此,我需要看到日志消息:"How to run this function while running tests?"

任何想法都欢迎。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-05 09:43:58

我终于找到了解决办法。

我们需要创建doItCallback

代码语言:javascript
复制
function MyClass(service) {
    this.service = service;
}

MyClass.prototype.doItCallback = function() {
    console.log("How to run this function while running tests?");
}

MyClass.prototype.doSomething = function() {
    this.service.doIt(this.doItCallback);
}

此外,我们还需要更新模拟:

代码语言:javascript
复制
var MyClassTest = TestCase("MyClassTest");

MyClassTest.prototype.testMyClass = function() {
    this.service = mock(Service);
    this.myClass = new MyClass(this.service);
    var myClass = this.myClass;
    when(this.service).doIt().then(function() {
        myClass.doItCallback();
    });
    this.myClass.doSomething();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22147844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档