2011-01-27 56 views
1

首先,我不想做TDD。我想写一些代码,然后为重要的东西写单元测试。如何从单元测试开始?

我知道这些工具。我知道如何编写单元测试。

我写了一些代码(夫妇离开课程),我不知道从哪里开始。我错过了语义。

如何挑选什么单元测试?

我应该单元测试每班额外吗?

我应该尝试模拟方法参数的每种可能的变化吗?

+0

用什么语言?不要*真的*重要,因为你应该努力以任何语言全面覆盖,但不同的语言有不同的工具可用。 – 2011-01-27 09:27:56

回答

2

单元测试的想法是测试代码段。我们在我的公司使用TDD,它可以创建。我们为每个可能的函数选项编写测试。所以要回答你的三个问题。

  1. 如何拿起什么单元测试?

    对没有智能的代码或函数编写单元测试是没用的。这实际上是当你严格遵循TDD时需要发生的事情。但是,如果显而易见的是函数返回的结果,并且你确定什么都不会出错,那么你可能不需要为它写一个测试。虽然最好这样做。

  2. 我应该单元测试每班额外吗?

    你究竟是什么意思?如果问题是你需要测试课程,答案是否定的。单元测试用于测试最小的一段代码。主要是函数和构造函数。你想知道的是,如果你的函数给出了你想要的结果,并且你希望它返回所需的结果或抛出一个很好的处理异常,不管你发送给函数的参数值是多少?我应该尝试模拟方法参数的每种可能的变化?

    您应该。这是编写单元测试的总体思路。你想测试一段代码,排除每一件可能出错的事情。这里参数是最重要的。如果一个字符串参数包含html例如会发生什么?而如果一个必需的参数是NULL呢?或者是一个空字符串。应该测试每个选项以排除可能出错的可能事情。

如果你使用.net框架,那么看看Moq框架是非常有趣的。简而言之,它是一个框架,允许您创建某种类型的假对象,并且可以根据该对象验证您的测试,以检查结果是否如预期的那样使用多个不同的参数和返回值。您可以在Scott Hanselmans blog post中阅读。

0

我应该尝试模拟方法的 参数每 可能的变化?

您应该看看Pex,它可以为您提供最大代码覆盖率的参数化测试生成输入值。