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

Expected exception is not caught in Unit Test

我有一个 class“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 header 中捕获它。但是这里不行。

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

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