首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用“先决条件”方法测试类

用“先决条件”方法测试类
EN

Software Engineering用户
提问于 2016-07-25 09:52:35
回答 1查看 76关注 0票数 3

我正在处理一个应该操作文件的类。

它的接口有一个Open(string filename)方法,以及检索和操作内容的各种其他方法。

在调用我要测试的方法之前调用open方法可以吗?

一方面,这记录了在任何其他方法之前都应该调用open方法的事实。

另一方面,我担心这些测试的有效性,因为如果Open方法停止工作,所有测试都会失败,而不会真正报告他们应该测试的方法的失败。

我考虑过的事情:

在测试时使用反射将对象置于已知的“可行”状态,而无需调用开放方法(复杂且难以维护)

使用静态构造方法创建对象,然后打开它,返回工作对象(但也应该有一个选项,使对象处于“封闭”状态,而且这并不会避免调用open方法,它只是隐藏它)

EN

回答 1

Software Engineering用户

发布于 2016-07-25 22:20:10

根据您所描述的,是的,调用open方法是必要的,尽管正如您所说,open的失败将不恰当地显示所有依赖测试的失败。

不过,我建议采取一种完全不同的办法。任何必须使用“裸金属”(即触摸系统资源)的类都应该努力成为只使用管道的类,即处理资源的绝对最小值。在您的问题中,您实际上清楚地描述了:您的方法“.检索和操作内容”。因此,我建议您有一个FileSystemProvider来检索内容,另一个单独的FileSystemManipulator来操作内容。后者将把FileSystemProvider作为注入的依赖项,从而使在单元测试FileSystemManipulator时模拟FileSystemProvider成为一个简单的任务,并使您的问题变得毫无意义。

当然,测试FileSystemProvider需要接触真正的文件,但是它的方法应该简单明了,几乎不需要单元测试。(人们可能会说,它们实际上不再是单元测试,因为它们接触到了系统资源;相反,它们是开发级集成测试,然后您可能会对它们应用严格的单元测试指导原则有点松懈。)

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

https://softwareengineering.stackexchange.com/questions/325673

复制
相关文章

相似问题

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