2013-05-30 168 views
0

我创建了一堆用于个人使用的库,并将自定义错误交给我的代码。错误处理和单元测试以及代码覆盖率

我把这些错误消息放在很多地方(以及可能发生错误的地方,或发生不可预知的事情)。

现在我创建测试类我的图书馆(好其实我创建测试类,我走,但是......)

我一直在做代码覆盖率等一些阅读,并我有一个关于我的过程的问题(我想养成良好的习惯)。

如上所述,我的方法做了很多错误处理。

在我的测试,我创建2个测试

  • 成功:测试对于预期收益的项目(值,对象等)。
  • 失败:传入错误的东西,并检查是否收到错误消息。

这看起来像是测试我的代码的有效方法,但我读得越多,我就越不确定。

欢迎任何有关如何改进我的测试的建议(或指向网上的资源)。

由于提前,

,如果这似乎是一个“愚蠢”的问题对不起(这确实给我....痘痘位)

回答

2

这听起来像是测试的一个好办法我。如果您测试每种可能的情况并获得每种方法的所有结果,那么您可以做些什么?

确保测试成功运行,然后查看您的代码并查看可能出错的所有内容。测试它是否以你期望的方式失败,并抛出期望的异常等等。因此,不要只写两个像你现在这样的测试,而是写一个用于每个可能的失败,以及一些测试,以检查它是否通过预期。这可能意味着写了很多测试。

举例来说,如果你有代码是这样的:

if (x && y && z) { 
    ... 
} else { 
    ... 
} 

那么它可能是一个好主意,以测试会发生什么,如果X和Y,但没有ž出现,如果单独出现的x,如果y和z等等。这可能看起来很小,但尽可能覆盖尽可能多的场景是一个好主意。

在养成良好习惯方面,编写测试的最好方法就是随着时间写出测试。所以,写一个测试,编写代码来通过测试,重复。这意味着所写的所有代码都会增加价值,并帮助您将问题分解为更小的块。这就是所谓的TDD(测试驱动开发)。有很多地方可以在TDD上在线阅读,包括网站如http://www.agiledata.org/essays/tdd.html

希望此答案有帮助。如果您对我所说的任何事情有任何额外的解释,请告诉我。

+0

谢谢本,我只是有点担心测试我的错误消息可能不是正确的/最好的方式去(特别是当我测试字符串值从评论)。当我发生多重'失败点'时,我倾向于使用单个测试同时测试所有这些测试,如果任何一个组'然后'失败',没有给出预期结果,那么整个组失败了,然后我不得不将它分成更小的部分,让每个部分单独传递,我想这就是他们说'测试套件'时的含义。感谢您的放心。 – DaveM