我有以下代码:C#最佳实践:引用其他方法的单元测试代码?
public static String GetHashString(this HashAlgorithm algorithm, Stream inputStream)
{
if (algorithm == null)
throw new ArgumentNullError("algorithm");
if (inputStream == null)
throw new ArgumentNullError("inputStream");
Byte[] bytes = algorithm.ComputeHash(inputStream);
//Convert the bytes into a hash string
String result = ...;
return result;
}
我想知道几件事情:
望着Microsoft.NET4
HashAlgorithm.ComputeHash(Stream inputStream)
方法我可以看到 有一个异常 可能会回来。在这种情况下练习 行Byte[] bytes = algoirthm.ComputeHash(inputStream)
这是一个最好的 与try-catch块吗?我问 ,因为在我看来,如果该 线引发异常,我可以让 呼叫我的扩展处理错误 捕捉。或者,它应该是 try-catch包裹着简单的 扔。此外,在单元测试,我单位 测试所有可能的例外, 包括那些可能来自 其他方法?特别是在这 的情况下...是最佳做法吗?在这 的情况下,我只需要 预计
ObjectDisposeException
。 但我想知道 的情况,我打电话的方法可能会抛出 回10个不同的例外。由于我 在这些例外情况下并不真正改变我的输出 ,我不认为 有必要单元测试导致相同 结果的所有不同 类型的故障。我想这是否正确?最后,我不知道是否是 必要甚至检查 的inputStream被空,如果
HashAlgorithm.computeHash(Stream inputStream)
方法甚至没有做 如此。
好吧,如果.NET抛出一个异常,如果InputStream为空,我应该甚至麻烦检查它?我应该让.NET抛出异常,而不是我这样做? – michael 2011-01-20 16:25:29