2015-02-09 76 views
1

我正在为在Linux中格式化磁盘,管理磁盘分区和创建逻辑卷和组的磁盘设备管理器创建单元测试。这个磁盘管理器是一个更大应用程序中的一个类。我将必须创建测试来测试(1)磁盘设备管理器类和(2)用于执行磁盘操作的OS命令和库的集成。单元测试应该模拟所有的外部服务?

1)将这些测试归类为单元测试还是集成测试?他们似乎是单元测试,因为他们只测试我的应用程序的一个模块,但他们也看起来是集成测试,因为它们依赖于外部代码。

2)是否值得还模拟OS命令和外部库行为创建独立的单元测试?

在此先感谢。

+0

什么是操作系统环境?简短(几乎没用)的答案是'它取决于' - 但是对于您正在使用的操作系统环境,是否存在已确定的白话?如果是这样,我的建议是采用该环境的惯例来命名测试的类型 - 这对下一个必须查看代码的人来说是最有意义的并且是最不惊人的。 – 2015-02-09 14:38:12

+0

操作系统是Linux,我不知道是否有单元测试白话在它。无论如何,我希望答案是独立于操作系统的。这是否是软件测试理论中的灰色地带?阅读http://martinfowler.com/bliki/UnitTest.html,我开始相信如此。 – 2015-02-09 21:30:32

回答

2

集成测试验证如何将两个(或更多)真正组件一起工作。通常组件都有一些定义良好的API,并通过测试来确保API的实施。单元测试只验证一个单元(类)。我们使用模拟来模拟单元测试中的“外部”行为。

因此,当你对真实系统(OS)测试组件,这是集成测试。

,值得为了验证从真实环境中的类的行为independ准备模拟。例如,您可能希望在构建之后启动这些单元测试(持续集成)并验证回归。在这种情况下,您希望运行得非常快,而不是处理真正的操作系统。