.NET应用程序的故障注入?

noc*_*ura 15 .net clr fault intercept

我想知道是否有人知道自动将常见故障注入正在运行的.NET程序的工具或技术.好像......

  • 在分配时随机注入OutOfMemoryException
  • 在尝试访问文件时随机注入FileNotFoundException
  • 使用套接字时随机注入IO或网络异常.

所以我真的在寻找一种方法来拦截CLR中的一些特定调用,类似于AppVerifier对本机Win32代码的调用.目的是在开发人员控制之外的许多错误条件下测试应用程序,并确保处理这些条件.

adr*_*nks 8

有一个名为TestAPI的codeplex项目可以执行运行时故障注入.您需要查看其托管代码错误注入API.它使用CLR分析API在运行时拦截方法调用并修改其行为.

一个示例,看看如何在已编译的exe中的方法调用上注入异常.


Gra*_*ton 5

Typemock Isolator似乎是您最好的选择.

如果您想要FileNotFoundException模拟测试,那么这就是您可以做的.

在您的生产代码中,您有这样的方法

public static Project OpenProject(string filePath)
Run Code Online (Sandbox Code Playgroud)

在您的测试代码中,您可以OpenProject像这样伪造呼叫

Isolate.WhenCalled(()=>Project.OpenProject(nulll)).WillThrow(new FileNotFoundException());
Run Code Online (Sandbox Code Playgroud)

当你的代码命中时OpenProject,FileNotFoundException会抛出一个.