如何保留内存数据结构以便以后在单元测试中使用它

Tor*_*mod 5 c# tdd unit-testing drivers

在我的代码中,我偶尔会传递各种字节数组等.此外,它们可能是托管对象.我想保留这些内存结构,以便我可以针对具体示例编写测试用例.

我的标准方法是点击断点,使用调试器查找各种值,然后将它们新建或将单元测试程序集中的文件或内容嵌入为资源.有时,这涉及编写我自己的组件交互抽象,以使我的代码依赖于可以新建的东西.

有没有更简单的方法?我无法想象这是新事物.假设你有一个消防中央单位与之交流.您可以使用它来生成数据报,您希望为单元测试创​​建数据报.此外,当您遇到由于某个未记录的方式而导致的错误,即fire central正在组成其复合消息时,您希望记录并保留这些示例.

理想情况下,我希望能够将所有交互记录到我的代码中,然后选择各种播放方案.但是从调试器中获取内存中的各种数据报示例并将其重新置于单元测试中会对我有所帮助.

有什么建议?

egl*_*ius 4

尝试使用二进制序列化

上面的内容专门针对您想要保存/加载信息或保存用于测试与外部系统交互的信息的某些对象的部分。我更喜欢将这些测试称为重点集成测试,以更好地捕获其余代码的单元测试与您可能拥有的其他逻辑的焦点差异。

尝试将与外部系统进行特定集成的代码与系统中的其余代码分开。我建议将它放在一个接口后面,您可以在为系统的其余部分创建单元测试时替换/模拟该接口。通过这种方式,您可以拥有专门设计的场景来测试代码的多个方面/逻辑,而无需访问外部系统 - 这也意味着您可以在几秒钟内运行大量场景。