预期异常单元测试
本文关键字:单元测试 异常 | 更新日期: 2023-09-27 18:12:12
你认为这是测试异常和抛出的好方法吗?有什么建议吗?
这是我的代码,我想测试异常:
public void EstablishConnection(string user, string pass)
{
try{
string connstring = String.Format("Server=" + CONNECTION_HOST + ";Port=" + CONNECTION_PORT + ";Database=" + CONNECTION_DATABASE + ";User Id=" + user + ";Password='" + pass + "';" + CONNECTION_OPTIONS);
connection = new NpgsqlConnection(connstring);
connection.Open();
if (connection.State != ConnectionState.Open)
{
IsConnected = false;
}
IsConnected = true;
}catch (Exception e)
{
throw;
}
}
我用于测试的单元测试代码:
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void EstablishEndGetConnectionTest()
{
DbRepository core = null;
core = DbRepository.GetInstance();
core.EstablishConnection("postgres", "1234");
Assert.IsTrue(core.IsConnected);
}
您正在捕获所有异常并当前直接重新抛出它们。所以基本上你的try/catch块是没用的。
try
{
}
catch (Exception e)
{
// Unless you do something here, the try/catch block is useless
throw;
}
第二点,你不应该期望异常ArgumentNullException
被抛出;在调用方法之前,您应该始终检查空值。
对于[ExpectedException]
属性本身,它是好的