你如何使用Jasmine.js对Javascript Promises进行单元测试?

时间:2014-05-23 21:21:08

标签: javascript unit-testing jasmine client-side promise

使用Javascript Promises正确使用Jasmine 单元测试功能的常用,正确或可接受的方法是什么?

示例承诺:

function readFile(filename, enc) {
  return new Promise(function (fulfill, reject) {
    fs.readFile(filename, enc, function (err, res) {
      if (err) reject(err);
      else fulfill(res);
    });
  });
}

function readJSON(filename) {
  return new Promise(function (fulfill, reject) {
    readFile(filename, 'utf8').done(function (res) {
      try {
        fulfill(JSON.parse(res));
      } catch (ex) {
        reject(ex);
      }
    }, reject);
  });
}

解决方案应包含上述示例代码的测试。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以考虑使用Jasminum。我使用Q promises设计了promises,但它可以使用任何符合Promise的构造函数。

describe("readFile", function () {
    it("reads a file", function () {
        return readFile(__filename)
        .then(function (content) {
            expect(content).toContain("Unlikely nonce: Xebrohio!");
        });
    });
});