2

我在 C# 中有以下设置 - 我有一个组件,它在构造函数中获取文件夹路径,然后,一些巨大的数据由它处理并以多个文件的形式写入磁盘(大约 1Gb 的数量级,非常 IO密集的)。在检索时,数据被读入(也是 IO 密集型),我的单元测试(nunit 和 MOQ,实际上是组件测试)将它们与原始数据进行比较。问题 - 单元测试需要几分钟才能完成,这很烦人。我想,有没有办法在测试夹具设置中创建 RAMDrive 或 RAMFolder,并在拆卸时将其删除。我不能使用内存文件或内存流,因为在组件之外没有人应该知道确切使用了哪些文件。

任何想法?

最好的问候,彼得

4

3 回答 3

1
  1. 获取固态硬盘
  2. 减少单元测试
  3. 在单独测试的子组件中抽象存储访问......然后使用内存中的数组模拟文件。

三种可行的方法来做到这一点。我会尝试使用 3 - 并且仍然购买 SSD。SSD 非常适合大量的小型 IO 内容,并且猜测编译是什么(甚至 C# - 大量的源文件)。

于 2012-03-14T08:43:46.460 回答
0

我会尝试让businessobject 有两个api,一个带有文件名(用于现有代码),一个带有流。

文件 api 只是一个将调用转换为处理完成的 streamapi 的薄层。

单元测试可以使用stream-api(即内存流),而wole系统通过fileapi处理文件流

于 2012-03-14T08:55:44.737 回答
0

为什么你需要在测试后拆掉它?为什么不在 a 中进行单元测试后清空所有文件ClassCleanup

作为 RAMdisk 软件,您可能需要在http://www.superspeed.com/desktop/ramdisk.php上查看 RAMDisk 11 。

您当然也可以模拟文件的实际写入,不是吗?

于 2012-03-14T08:40:14.167 回答