rad*_*scu 0 c# unit-testing moq private-methods
鉴于此类:
public class MyClass
{
private void MyMethod()
{
//...
}
public void Execute()
{
try
{
//...
MyMethod();
//...
}
catch(Exception e)
{
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能模拟MyMethod扔一个OutOfmemoryException?
编辑1:
鉴于MyMethod从数据库加载一些数据的下一种情况,以及发生一些不可预测的错误,MyMethod将引发异常.我希望能够对这种情况进行单元测试.在我的例子中,execute方法的catch子句.
我不使用起订量,所以它可能是有一些方法可以做到这一点-但我认为,如果你需要,你正在做的嘲讽错.
你通常应该嘲笑依赖 - 你不能依赖你试图测试的班级的私人成员,对吗?通常我会模拟一个接口 - 偶尔它可以用来模拟一个类,但我通常不会.如果你正在调用某个依赖项并且你希望该调用的结果是一个OutOfMemoryException,那么只需使该公共调用抛出异常即可.
如果您觉得自己有理由想要模拟私有方法,请提供有关您的上下文的更多详细信息.
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |