我是新的单元测试和使用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)));
Here exists = true,在我的例子中other的值是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);
如果需要抛出异常(预期情况),可以使用以下代码:
Assert.Throws<ArgumentException>(delegate { throw new ArgumentException() } );
或添加
[ExpectedException(typeof(ArgumentException))]
靠近你的[Test]声明