dojo 如何检查函数是否在DOH中抛出错误?

velaa5lx  于 2022-12-16  发布在  Dojo
关注(0)|答案(2)|浏览(181)

我试着检查一个函数是否抛出了错误,并做了以下代码:

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');               
             }
         }
 ]);

对象js文件:

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

但是也许在Doh中哪里有一些正确的方法呢?有人能解释一下吗?谢谢

gt0wga4j

gt0wga4j1#

您需要doh.assertError()
示例:

doh.assertError(TypeError, this.field, "setValue",
    [{
        CreatedOn: "March 10th, 2014"
    }],
    "setValue() on an invalid format should throw a TypeError");
68bkxrlz

68bkxrlz2#

This example test显示DOH正确捕获并显示错误。
This gist是测试代码,包含以下代码:

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抛出的错误消息:

相关问题