Javascript 如何测试promise是否返回了正确的值

Javascript 如何测试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 () => {

我想测试承诺是否解析了正确的值,我已经编写了下面的单元测试,但我不确定如何进一步进行

file.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');
 })
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
时,它将只包含两个导出。