SqlConnection 命令在删除时不会引发异常
本文关键字:异常 命令 删除 SqlConnection | 更新日期: 2023-09-27 18:31:22
我正在研究单元测试,我做了一个测试以下方法的测试:
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 不存在,如何抛出异常?
我正在使用:
- Visual Studio 2012
- TFS
- SQL Server 2008
这不会引发异常,它只会更新 0 行。
您可以使用 ExecuteNonQuery()
检查影响了多少行,如果它们等于 0,您可以抛出异常(这将在计算上是昂贵的),但会达到您的预期。
还可以将单元测试重写为 Assert 受影响的行大于 0。