公共产品 GetbyID(int id){尝试{//mycode产品p = ..........} catch(DataAccessException ex){...
public Product GetbyID(int id)
{
try
{
//mycode Product p=..........
}
catch (DataAccessException ex)
{
throw new BusinessException(ex.ErrorCode);
}
catch (Exception ex)
{
BusinessExceptionHandler.LogException(ex);
}
return p;
}
上面给出了我需要编写测试用例的代码片段。这里 LogException(ex); 是静态类 BusinessExceptionHandler 中的静态方法
我参考了 Moq 框架 2.6.1014.1
我如何 Moq 方法 BusinessExceptionHandler.LogException
我更喜欢不需要对 GetbyID 方法进行任何更改的模拟机制
Moq(以及 NMock、RhinoMock)在这里帮不了你。你必须围绕 LogException 创建一个包装类(和虚拟方法),并在生产代码中使用它并使用它进行测试。
,如果您实在无法更改现有代码, http://stacktoheap.com/blog/2012/11/11/testing-extension-methods-with-microsoft-fakes/ http://stacktoheap.com/blog/2012/11/11/testing-extension-methods-with-microsoft-fakes/