首先,我不想做TDD。我想编写一些代码,然后编写重要内容的单元测试。
我知道这些工具。我知道如何编写单元测试。
我写了一些代码(几个关闭课程),我不知道从哪里开始。我错过了语义。
如何选择单元测试?
我应该对每个班级进行单独测试吗?
我应该尝试模拟方法参数的每个可能变化吗?
答案 0 :(得分:2)
单元测试的想法是测试代码片段。我们在我的公司使用TDD工作创建。我们为函数的每个可能选项编写测试。所以回答你的三个问题;
如何选择单元测试?
为不包含智能的代码或函数编写单元测试是没用的。这实际上是您严格遵循TDD时需要发生的事情。但是如果很明显函数返回的是什么,并且你确定什么都不会出错,那么你可能不必为它编写测试。虽然最好这样做。
我应该对每个课程进行单独测试吗?
你到底是什么意思?如果问题是你需要测试类,答案是否定的。单元测试用于测试最小的代码。主要是函数和构造函数。您想要知道的是,如果您的函数提供了您想要的结果,并且您希望它返回所需的结果,或者抛出一个很好的handeled异常,无论您发送给函数的参数值是什么
我应该尝试模拟方法参数的每个可能变化吗?
你应该。这就是编写单元测试的全部想法。您希望测试一段代码,以排除可能出错的每一件事。参数在这里是最重要的。如果string-parameter包含html,会发生什么?如果必需参数为NULL怎么办?或者是一个空字符串。应该测试每个选项以排除可能出错的事情。
如果您正在使用.net框架,那么查看Moq框架是非常令人兴奋的。简而言之,它是一个框架,允许您创建某种类型的虚假对象,您可以验证您的测试,以使用几个不同的参数和返回值检查结果是否符合预期。您可以在Scott Hanselmans blog post中了解相关信息。
答案 1 :(得分:0)
我应该尝试模拟每一个 方法的可能变化 参数?
您应该查看Pex,它可以为参数化测试生成输入值,从而提供最大的代码覆盖率。