在我的测试中,我在尝试在我正在测试的函数中打回调函数时,很难得到完整的覆盖。这里是功能:
CrowdControl.prototype.get = function() {
var options = this.optionsFor('GET');
return q.Promise(function(resolve, reject) {
function callback(error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
}
request(options, callback);
});
};
因此,除了函数回调之外,我已经覆盖了函数:
function callback(error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
}
我似乎不知道如何通过测试来达到这个目的。
在上面,我把请求像这样删掉了
var request = sinon.stub();
beforeEach(function() {
CrowdControl = rewire('crowdcontrol');
CrowdControl.__set__({
request: request
});
});
所以我不确定如何才能让它点击回调并测试它。可能需要一些洞察力,因为这对我来说还是新的。谢谢
所以我开始尝试一个简单的测试-
it("should call callback function.", function() {
crowdControl.get();
//callback should fire?
expect(callback).to.have.been.called;
});
当你使用返回promise的函数时,你必须让你的断言(期望)在那么()里面,所以它看起来像这样:
it("should call callback function.", function(done) {
var callback = sinon.stub();
crowdControl.get(callback).then(function(){
expect(callback).to.have.been.called;
done();
});
实现您想要的目标的简单方法是:
CrowdControl.prototype.get = function(callback) {
callback = callback || function callback(error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
};
var options = this.optionsFor('GET');
return q.Promise(function(resolve, reject) {
callback();
request(options, callback);
});
};
现在可以在测试时插入函数(如果没有提供参数,它将使用实际实现)。
CrowdControl.get(someFakeFunction);
问题内容: 我有一个实现一些WKNavigationDelegate函数的UIViewController,并且我想对这些函数中的逻辑进行单元测试。这是一个例子: 我希望我的单元测试确保基于WKNavigationAction的request.url用正确的WKNavigationActionPolicy调用DecisionHandler。 但是,我不知道如何测试此功能。当我运行测试项目时,在We
Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。
英文原文:http://emberjs.com/guides/testing/unit/ 单元测试用于测试代码的一个小片段,确保其功能正常。与集成测试不同,单元测试被限定在一个范围内,并且不需要Ember应用运行。 全局 vs 模块 过去如果没有作为一个全局变量加载整个Ember应用,要对应用进行测试非常困难。通过使用模块(CommonJS,AMD等)来编写应用,可以只加载被测试的部分,而不用将其
我有以下两门课 我想对SampleTest getResult()进行单元测试,但我想在这里模拟Test1(),这样我就可以返回我在UnitTests中设置的任何值。这些课我都改不了。 我使用Mockito尝试了一些模式,但没有成功。 请提出一些好的建议。
我有一个spring boot应用程序,它有一个endpoint测试配置类和一个单元测试来测试我的http客户端。我正在尝试从应用程序中获取服务器地址和端口。位于我的src/测试中的属性。(所有类都在我的src/测试中。) 这是我的配置类代码: 我对我的中的值进行了注释。属性,然后创建一个方法,我用bean实例化该方法以返回我的服务器地址字符串。 然后,我在HttpClientTest类中使用该字
我目前正在与CDI Unit合作一个项目,我遇到了一个奇怪的问题。我试图在一个简单的项目中重现它: 我有一个使用CdiRunner运行的测试类(如下所述:http://jglue.org/cdi-unit-user-guide/我的测试类注入了被测试的单元:UUD。这个类扩展了一个超级类“ParentTestClass”,它目前是无用的。 测试课。爪哇: 正如我提到的,父类是空的。 ParentT