C# 如何使用内部异常对代码进行单元测试?
我希望获得以下代码的一些单元测试覆盖率:C# 如何使用内部异常对代码进行单元测试?,c#,.net,unit-testing,moles,inner-exception,C#,.net,Unit Testing,Moles,Inner Exception,我希望获得以下代码的一些单元测试覆盖率: public static class ExceptionExtensions { public static IEnumerable<Exception> SelfAndAllInnerExceptions( this Exception e) { yield return e; while (e.InnerException != null) { e = e.InnerExcep
public static class ExceptionExtensions {
public static IEnumerable<Exception> SelfAndAllInnerExceptions(
this Exception e) {
yield return e;
while (e.InnerException != null) {
e = e.InnerException; //5
yield return e; //6
}
}
}
公共静态类例外扩展{
公共静态IEnumerable self和allinerException(
此例外(e){
收益率e;
while(e.InnerException!=null){
e=e.InnerException;//5
收益率返回e;//6
}
}
}
编辑:看来我不需要摩尔来测试这个代码。另外,我有一个错误,第5行和第6行颠倒了。这就是我得到的(毕竟不需要痣):
你为什么要用鼹鼠来测试呢?该功能看起来可以通过传统的单元测试技术进行测试。
[TestFixture]
public class GivenException
{
Exception _innerException, _outerException;
[SetUp]
public void Setup()
{
_innerException = new Exception("inner");
_outerException = new Exception("outer", _innerException);
}
[Test]
public void WhenNoInnerExceptions()
{
Assert.That(_innerException.SelfAndAllInnerExceptions().Count(), Is.EqualTo(1));
}
[Test]
public void WhenOneInnerException()
{
Assert.That(_outerException.SelfAndAllInnerExceptions().Count(), Is.EqualTo(2));
}
[Test]
public void WhenOneInnerException_CheckComposition()
{
var exceptions = _outerException.SelfAndAllInnerExceptions().ToList();
Assert.That(exceptions[0].InnerException.Message, Is.EqualTo(exceptions[1].Message));
}
}