微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单元测试中未捕获预期的异常

如何解决单元测试中未捕获预期的异常

我有一个“DbCommand”类的单元测试,它在其构造函数中验证第一个参数是否接收“?”价值。如果是,则抛出 ArgumentException。

CONSTRUCTOR PUBLIC DbCommand (dbConnection AS DbConnection,cInstruction AS CHaraCTER):

    IF (dbConnection = ?) THEN
        UNDO,THROW NEW ArgumentException("DbConnection must be valid":U) .

在单元测试中,我用“?”分配第一个参数验证是否抛出异常。为此,我补充说:

@Test (expect="System.ArgumentException").
METHOD PUBLIC VOID TestDbCommand ():

    DEFINE VARIABLE oDbCommand AS DbCommand NO-UNDO .

    oDbCommand = NEW DbCommand(?,"Delete") .

但是单元测试失败,失败跟踪的第一行是: “System.ArgumentException:DbConnection 必须有效”

即使我已经在期待这个?我还有几个地方是我使用了确切的异常并且能够在@Test 标头中捕获它。但在这里它不起作用。

解决方法

@Test 注解需要使用预期的属性,而不是“预期”的预期异常。

而且我不是 100% 确定(以前从未使用过),如果 ABLUnit 支持以这种方式处理 .NET 异常 - 改用 ABL Error 类可能更安全。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。