1

当我使用jasmine-node. 我试过--captureExceptions没有运气的标志。

最小的例子:

测试/mySpec.js

var r = require('./badness.js')
describe("things:", function(){
  it("can", function(){
    expect(r()).toBe("work")
  })
})

测试/badness.js

module.exports = function(){
  throw "badness";
  return "work";
};

尝试运行茉莉花

npm install jasmine-node --save-dev
$ ./node_modules/.bin/jasmine-node --captureExceptions test/
F

Failures:

  1) things: can
   Message:
     badness
   Stacktrace:
     undefined

Finished in 0.004 seconds
1 test, 1 assertion, 1 failure, 0 skipped

我本来期望堆栈跟踪或指示错误是从哪里引发的。这可能/例外吗?一个错误,还是我不正确的期望?

4

1 回答 1

0

由于 JavaScript 中的所有内容都依赖于 JavaScript 引擎,我想说大多数实现 V8 的现代引擎都很酷,但会出现错误异常。尝试这个:

throw new Error('Error with better stacktrace');

此外,不要在控制台中查看,而是尝试使用 Jasmine 匹配器“toThrow”。

it("The 'toThrow' matcher is for testing if a function throws an exception", function() {
  var foo = function() {
    return 1 + 2;
  };
  var bar = function() {
    return a + 1;
  };

  expect(foo).not.toThrow();
  expect(bar).toThrow();
});
于 2014-09-01T03:27:38.430 回答