问题
编译器在返回行给我一个警告,并带有一条消息:
检测到无法访问的代码
问题
如何重构单元测试,以免收到编译器警告?也欢迎任何其他反馈。
代码
我有一个Bar
包装 WCF 调用的类。如果在调用中的某个地方发生异常,则包装器将记录错误并引发 WCF 错误。这是课程:
public class Bar
{
private readonly ILog _execeptionLog;
public Bar(ILog execeptionLog)
{
if (execeptionLog == null)
throw new ArgumentNullException("execeptionLog");
_execeptionLog = execeptionLog;
}
public TResult TryExecute<TResult>(Func<TResult> action)
{
if (action == null)
throw new ArgumentNullException("action");
try
{
return action.Invoke();
}
catch (Exception ex)
{
_execeptionLog.Error(ex.ToString());
var fault = FooFault.CreateFrom(ex);
throw new FaultException<FooFault>(fault);
}
}
}
我尝试对这个类进行单元测试,以确保我得到正确细节的错误。这是我的单元测试方法
[Test]
public void TryExecute_ActionThrowsException_FaultDetailIsNotNull()
{
//Arrange
var mock = MockRepository.GenerateMock<ILog>();
var uut = new Bar(mock);
var ex = new ArgumentException("foo");
try
{
//Act
int actual = uut.TryExecute(() =>
{
throw ex;
return 1; //<<<<<<<< Unrechable code detected here
});
}
catch (FaultException<FooFault> fault)
{
//Assert
Assert.IsNotNull(fault.Detail);
}
}