单元测试if方法是否删除源数据文件

时间:2011-03-19 03:48:36

标签: c# unit-testing

单位测试的超级菜鸟......

我有一个处理然后删除输入文件的方法。如何对文件实际删除进行单元测试?我理解在单元测试期间执行实际文件IO是一种不好的做法。

谢谢!

2 个答案:

答案 0 :(得分:1)

这不是一个绝对的规则 - 如果你的班级生活在外围,即与某些外部子系统(在这种情况下是文件系统)的接口,那么测试它的正确方法是使用真实的子系统。

GOOS书将这些测试视为“集成测试”,因为这些测试测试您的类是否与外部子系统集成。

此类的使用者可以通过此类公开的接口抽象出文件系统。

我对这个决定的问题/酸测试是 - 这个班的主要责任是什么?

  • 如果它正在访问文件系统,那么我需要编写集成测试
  • 如果不是,那就使用模拟并专注于真正的责任。例如充当客户存储库(“使用/委托”到依赖关系来处理文件系统)。

答案 1 :(得分:0)

让方法执行源文件的System.IO.File.Copy(),然后使用该副本进行测试。希望您的代码能够指定要处理的文件。