【发布时间】:2010-11-11 19:24:34
【问题描述】:
我有一个关于单元测试的问题。我会用一个例子来概括它。
假设我正在编写一个命令行应用程序,它具有各种可接受的命令,并且每个命令都有其可接受的参数。例如:myapp create -DprojectName=newProject -DprojectVersion=1.0。
如果我有一个名为 Command 的类,它有一个 validateArguments 方法,该方法接收有效参数名称列表并将其与用户指定的参数列表进行比较,您将如何进行单元测试?
我看到的可能性是:
您编写了两个单元测试 - 一个确保传入有效参数时不会引发错误,另一个确保传入无效参数时引发错误。
-
您编写了一个单元测试,以确保所有可接受的参数都不会被拒绝。我最终会对每个可接受的参数进行单元测试:
@测试 public void validateArgments_ProjectNameArgPassed_NoExcepton throw { ... }
@测试 public void validateArguments_ProjectVersionArgPassed_NoException throw { ... }
等等。
对我来说,第一种方法是有意义的。但这并不能确保应该接受的每个论点都是。
【问题讨论】:
标签: unit-testing testing automated-tests