我正在进行单元测试,我做了一个测试,测试以下方法:
public void DeleteTransport(int id)
{ SqlConnection sqlConnection = new SqlConnection(SQL_CONN); try { sqlConnection.Open(); SqlCommand dbCommand = sqlConnection.CreateCommand(); dbCommand.CommandText = string.Format("DELETE FROM dbo.Transports WHERE ID={0}", id); SqlDataAdapter dap = new SqlDataAdapter(dbCommand); var ds = new DataSet("Transports"); dap.Fill(ds); } finally { sqlConnection.Close(); } }
在单元测试中,我将一个不存在的id作为参数,但该方法不会抛出SqlException。
如果id不存在,如何抛出异常?
我正在使用:
答案 0 :(得分:2)
这不会抛出异常,它只会更新0行。
您可以使用ExecuteNonQuery()
检查受影响的行数,如果它们等于0,则可能会抛出异常(这会非常昂贵)但会达到您的预期。
您还可以将单元测试重写为Assert受影响的行大于0。