2

我试图检查一个函数是否抛出错误,并做了这个:

 define([
     'doh/runner',
     'app/Obj'
 ], function(
     doh,    
     Obj 
 ){
     doh.register('Test Obj exception', [
         function () {
             try {          
                 new Obj(); // should throw error
             } catch(e) {
                 doh.t(e, 'should give an error if no parameters given');               
             }
         }
 ]);

obj.js文件:

...
constructor: function (args){
  if (!args) { throw 'Error' }
  ...
}
...

但也许在 Doh 中有什么正确的方法可以解决这个问题?有人可以解释吗?谢谢

4

2 回答 2

1

你想要 doh.assertError()

例子:

doh.assertError(TypeError, this.field, "setValue",
    [{
        CreatedOn: "March 10th, 2014"
    }],
    "setValue() on an invalid format should throw a TypeError");
于 2014-03-27T17:03:44.693 回答
0

此示例测试表明 DOH 正确捕获并显示错误。

这个要点是测试,并包含以下代码:

var Obj = function () {
    if (arguments.length < 1) {
        throw 'Error - There are ' + arguments.length + ' arguments';
    }
};
define(["doh/runner"], function(doh){
    var tests = [
        function () {
            new Obj(); // wrong call
        }
    ];
    doh.register('Test Obj exception', tests);
});

屏幕截图显示了 1 错误,以及Error抛出的错误消息:

在此处输入图像描述

于 2013-04-17T19:01:35.017 回答