Javascript 如何测试promise是否返回了正确的值
我想测试承诺是否解析了正确的值,我已经编写了下面的单元测试,但我不确定如何进一步进行 file.jsJavascript 如何测试promise是否返回了正确的值,javascript,node.js,unit-testing,mocha.js,Javascript,Node.js,Unit Testing,Mocha.js,我想测试承诺是否解析了正确的值,我已经编写了下面的单元测试,但我不确定如何进一步进行 file.js const fs1 = require('fs'); let param =""; module.exports = { test, test1 } function test (outputParam) { //module.exports.param = fs1.readFileSync(outputParam); (async () => {
const fs1 = require('fs');
let param ="";
module.exports = {
test,
test1
}
function test (outputParam) {
//module.exports.param = fs1.readFileSync(outputParam);
(async () => {
module.exports.param = test1();
}) ();
}
function test1 () {
let promise = new Promise((resolve,reject) => {
let promiseVar = "success";
resolve(promiseVar);
})
}
let sinon = require("sinon");
let filejs = require('./file.js');
const fs = require('fs');
let expect = require('chai').expect;
it('should stub a promise ' ,function() {
let someArg ="file.xml";
filejs.test(someArg);
expect(filejs.param).to.equal('success');
})
file.spec.js
const fs1 = require('fs');
let param ="";
module.exports = {
test,
test1
}
function test (outputParam) {
//module.exports.param = fs1.readFileSync(outputParam);
(async () => {
module.exports.param = test1();
}) ();
}
function test1 () {
let promise = new Promise((resolve,reject) => {
let promiseVar = "success";
resolve(promiseVar);
})
}
let sinon = require("sinon");
let filejs = require('./file.js');
const fs = require('fs');
let expect = require('chai').expect;
it('should stub a promise ' ,function() {
let someArg ="file.xml";
filejs.test(someArg);
expect(filejs.param).to.equal('success');
})
当我运行测试时,我看到
AssertionError:预期未定义为等于“failure”
请记住,如果您使用的代码使用的是
async
或promission,那么您希望手动地说测试已经完成,而不是仅仅通过到达顶级测试函数的末尾就认为测试已经“完成”。这回答了你的问题吗?你是在重复发帖问题吗?嗨,我有两个不同的问题,我相信两个测试看起来都不一样,我们无法在函数中执行module.exports.param
,就像我相信的那样。当我们在测试文件中包含file.js
时,它将只包含两个导出。