提供默认构造函数被认为是测试的最佳实践?

时间:2010-12-02 23:29:14

标签: unit-testing testing

我正在使用Moles框架进行模拟。我遇到了一些包含没有无参数构造函数的对象的障碍。当我创建有问题的对象时,我必须提供一个ID,它启动对数据库的调用以设置对象属性。这意味着通过Moles进​​行更多拦截。 如果对象有一个简单的构造函数,我的测试会更顺畅。

我记得在某处提到默认构造函数对于测试非常重要。当我去谷歌确认我的记忆时,我找不到答案。

提供无参数构造函数:对测试有用还是重要?无关?

1 个答案:

答案 0 :(得分:1)

我认为你不应该在你的对象构造函数中真正做那种事情,因为它将你的测试与你的数据库紧密联系起来没有任何用处。像Ninject这样的依赖注入框架在这里会有很大的帮助。你没有默认的构造函数,但你做了一些设置,让Ninject将创建测试对象时所需的一切粘在一起。

我刚开始使用Ninject(并使用Moq),所以我没有大量的使用经验,但它不再需要用于测试的默认构造函数。它还可以进一步排序,有助于使您的测试完全独立于任何外部测试。

我知道这是一个与语言无关的问题所以Ninject可能与你无关,但这是我对单元测试的一般看法。