asp.net写单元测试我有一个Repositry类至极发起这样的:返回异常
public ContactRepository(string sqlStr, string username)
{
if (!string.IsNullOrEmpty(sqlStr))
{
ent = new AceoEntities(sqlStr);
Username = username;
}
else
new Exception("No sql string is defined");
}
这可能不是最好的方法,但我想,以确保它是不可能创建实例在没有sqlStr的情况下关闭类。
然后我想测试:
[TestMethod()]
public void CreateContactRepositoryWithEmtySqlString()
{
string sqlStr = string.Empty;
ContactRepository target;
try
{
target = new ContactRepository("kvelland-kk", sqlStr);
}
catch (Exception e)
{
Assert.AreEqual("No sql string is defined",e.Message);
}
}
我的问题是:这是正确的方式,这样做呢?我在解决此问题方面遇到问题。
除非你期望的异常是一个专门的派生异常,否则捕捉任何异常对于任何形式的行为都是开放的,所以很难知道你是否抛出了你期望的确切异常。 – Xhalent
重要的一点Xhalent - 我更新了我的答案,期望得到'ArgumentException'而不是'Exception' – GarethOwen