我是单元测试的新手并且使用Nunit我不知道如何传递此异常但是有一个AssertionUnhandled Exception。
我在做
Assert.AreEqual(exists, 1 == (int)ExecScalar(string.Format("SELECT COUNT(*)
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{0}{1}' AND TABLE_SCHEMA ='{2}'",
(audit ? DBHelper.AuditTablePrefix : ""), tableName, schema)));
这里存在=真,在我的情况下,其他来到1 == 0所以它说预期为真但是假。
那我该怎么办,因为我不知道我怎么能进一步前进。
提前致谢。
答案 0 :(得分:0)
如果需要抛出异常(预期情况),可以使用以下代码:
Assert.Throws<ArgumentException>(delegate { throw new ArgumentException() } );
或添加
[ExpectedException(typeof(ArgumentException))]
靠近[Test]声明。
答案 1 :(得分:0)
看起来您正在尝试确保特定查询在表计数时返回1
,
我建议你在Assert.DoesNotThrow()
中包含这样复杂的查询,并使用Assert.AreEqual()
来比较两个值:
int numberOfTables = -1;
Assert.DoesNotThrow(() => numberOfTablesRaw =
(int)ExecScalar(string.Format(
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{0}{1}' AND TABLE_SCHEMA ='{2}'",
(audit ? DBHelper.AuditTablePrefix : ""),
tableName,
schema)));
Assert.AreEqual(1, numberOfTables);