DLa*_*uer 4 language-agnostic tdd mocking
我经常发现自己更改代码以使其更易于测试,我总是怀疑这是否是一个好主意.我发现自己做的一些事情是:
更改代码以使其更易于测试可能是一件好事,但前提是它使代码本身更好.重构可测试性可以使您的代码更好地独立于测试套件的需求.那是好的变化.
在你的三个例子中,只有#3是一个非常好的例子; 通常,这些新接口将使您的代码更灵活,以便以后经常使用.#1通常用于通过依赖注入进行测试,在我看来,这会使代码变得更加复杂,但至少会使测试变得更容易.#2听起来总的来说是个糟糕的主意.
它非常好,甚至建议您更改代码以使其更易于测试.以下列出了10个难以测试代码的内容.
我认为你的第三个确实没问题,但我不太喜欢第一个和第二个.如果你只是用getter和setter打开你的类内部,那么你就完全放弃了封装.根据您的语言,有一些方法可以打开一些参数进行测试.但我实际上做的是(打开封装少一点)是使我想要检查的字段受到保护(当依赖注入无法解决问题时).
然后,在测试项目中,我继承了类,并创建了一个"更强大的",我可以检查内部,但是我没有对实现进行任何更改,并在测试中使用此类.
最后,强烈建议更改代码以进行依赖注入和控制反转,因为它使您的代码更易于测试,更易读和可维护.
虽然改变是可以的,但最好的办法是TDD.一旦首先编写测试,它就会自然地生成可测试的代码.
归档时间: |
|
查看次数: |
473 次 |
最近记录: |