如何使用NUit模拟文件和文件内容



你好,我有以下场景:

配置文件存储在一个特定的文件夹(和子文件夹(中,结构如下,其中.conf文件包含XML,.conf.json包含JSON

- Config
|- main_config.json
|- in/
|- mod1.conf
|- mod2.conf.json
|- mod3.conf
|- ...
|- out/ 
|- mod1.conf.json
|- mod2.conf
|- ...

在我的项目中,我有一个类,它封装了这些文件的存在,这样它就不会在软件的其他部分中公开。我不解析任何形式的读取器或写入器(依赖注入等(到这个类——这都是在内部处理的。在封装中,我读取了配置文件中包含的模型,然后使用FluentValidation对它们进行验证。

现在我的问题是,我想在单元测试中测试这个流,但我找不到模拟文件系统的方法,那么如何做到这一点呢?让我稍微扩展一下,如果我确实使用依赖注入来解析读取器和写入器,这很容易。但这不是我想要的。

如果封装类在内部处理文件的编写,而不通过DI请求其依赖关系(读取器和写入器(,那么编写单元测试将是不可能的
单元测试是基于这样一个事实,即要测试这个特定的单元,所有其他部分都可以被模拟掉。

因此,要么抽象文件系统(例如IFileSystem(,要么编写集成测试。

最新更新