如何检查函数是不是在 DOH 中引发错误?
Posted
技术标签:
【中文标题】如何检查函数是不是在 DOH 中引发错误?【英文标题】:How to check if function throw an error in DOH?如何检查函数是否在 DOH 中引发错误? 【发布时间】:2013-04-17 14:05:38 【问题描述】:我正在尝试检查一个函数是否抛出错误,并做了这个:
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 中有什么正确的方法可以解决这个问题?有人可以解释吗?谢谢
【问题讨论】:
我不确定是什么问题。您能告诉我们正在发生的事情以及您希望/期望发生的事情吗? 【参考方案1】:你想要 doh.assertError()
例子:
doh.assertError(TypeError, this.field, "setValue",
[
CreatedOn: "March 10th, 2014"
],
"setValue() on an invalid format should throw a TypeError");
【讨论】:
【参考方案2】: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
抛出的错误消息:
【讨论】:
我认为 OP 更多地指的是如何让 DOH 认识到错误正在被正确抛出(因此通过了测试)。这可能吗?感谢您在这里的帮助! 澄清——对代码中正确抛出的错误的通过测试以上是关于如何检查函数是不是在 DOH 中引发错误?的主要内容,如果未能解决你的问题,请参考以下文章