我正在编写基于 XML 的存储库。现在它是一个基本的类 CRUD操作。构造函数中传递的参数之一是将保存存储库的文件的 url
。
public Repository(string fileUrl, IRepositorySchema schema)
现在我想为这个类编写单元测试。我不想使用真实文件。我做了一些研究,发现 SystemWrapper可能会帮助我完成这项任务的图书馆。
真正的问题是,如何更改我的存储库类以便我可以模拟/ stub 文件?我应该将文件系统与文件 url 一起注入(inject)吗?
最佳答案
绝对是模拟文件进行测试的好方向。
使用 SystemWrapper , 你不会调用 System.IO.File
不再是静态方法,而是将文件实例作为 SystemInterface.IO.IFile
传递到存储库中并通过它执行所有调用,就像您对存储库模式所做的一样:
public Repository(SystemInterface.IO.IFile file, IRepositorySchema schema)
对于生产,您将使用 SystemWrapper.IO.FileWrap
由 SystemWrapper 提供的实例,它是使用 System.IO.File
实现的,对于测试,您将提供适合您的测试需要的自己的 SystemInterface.IO.IFile
实现。
关于c# - 如何设计基于 XML 和可测试的存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24351990/