- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一些类实现了一些与文件系统和文件相关的逻辑。例如,作为此逻辑的一部分,我正在执行以下任务:
现在所有这些逻辑都有一些工作流程,如果出现问题(例如,在特定文件夹位置找不到配置文件),则会抛出异常。此外,还有Managed Extensibility Framework (MEF)涉及此逻辑,因为我正在检查的这些文件中的一些是我手动加载到 MEF 聚合等的托管 DLL...
现在我想以某种方式测试所有这些。我正在考虑在 HDD 上创建几个物理测试文件夹,涵盖各种测试用例,然后针对它们运行我的代码。我可以创建例如:
这是正确的方法吗?我不确定在这种情况下如何准确运行我的代码......我当然不想运行整个应用程序并指向它来检查这些模拟文件夹。我应该使用一些单元测试框架来编写某种“单元测试”,针对这些文件系统对象执行我的代码吗?
一般来说,对于这种测试场景,所有这些都是正确的方法吗?还有其他更好的方法吗?
最佳答案
首先,我认为,最好编写单元测试来测试您的逻辑而不接触任何外部资源。这里有两个选择:
在单元测试中,您不需要测试外部库(例如 MEF)的逻辑。
其次,如果你想编写集成测试,那么你需要编写“happy path”测试(当一切正常时)和一些测试你的逻辑的测试在边界情况下(找不到文件或目录)。与@Sergey Berezovskiy 不同,我建议为每个测试用例创建单独的文件夹。主要优点是:
对于单元测试和集成测试,您可以使用普通单元测试框架(如 NUnit 或 xUnit.NET)。使用此框架可以非常轻松地在构建服务器上的持续集成场景中启动测试。
如果您决定编写这两种测试,那么您需要将单元测试与集成测试分开(您可以为每种测试创建单独的项目)。原因:
关于c# - 如何在 .NET 中使用真实文件进行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20265369/
我是一名优秀的程序员,十分优秀!