单元测试未捕获预期的异常
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 可能更安全。
我有一个 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 可能更安全。