首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用内存磁盘进行I/O单元测试

使用内存磁盘进行I/O单元测试
EN

Stack Overflow用户
提问于 2012-03-14 16:33:12
回答 3查看 681关注 0票数 2

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

有什么想法吗?

致以最好的问候,皮特

EN

回答 3

Stack Overflow用户

发布于 2012-03-14 16:43:46

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

这有三种可行的方法。我会试着用3-但还是会买一个SSD。固态硬盘非常适合处理大量的小IO文件,猜猜编译是什么(甚至是大量的C#源文件)。

票数 1
EN

Stack Overflow用户

发布于 2012-03-14 16:40:14

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2012-03-14 16:55:45

我会尝试使用包含两个apis的businessobject,一个包含文件名(针对现有代码),另一个包含streams。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9698285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档