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

Unit testing 提供默认构造函数被认为是测试的最佳实践吗?,unit-testing,testing,Unit Testing,Testing,我正在使用Moles框架进行模拟。我遇到了一些没有无参数构造函数的对象的障碍。当我创建有问题的对象时,我必须提供一个ID,这将启动对数据库的调用以设置对象属性。这意味着通过鼹鼠进行更多的拦截如果对象有一个简单的构造函数,我的测试就会顺利得多。 我记得在某个地方听说,提供默认构造函数对于测试很重要。当我去谷歌确认我的回忆时,我找不到答案 提供无参数构造函数:对测试有用还是重要?无关的 我认为,无论如何,您不应该在对象构造函数中真的做那种事情,因为它将您的测试与数据库联系得太紧密,没有任何用处。像这

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

我记得在某个地方听说,提供默认构造函数对于测试很重要。当我去谷歌确认我的回忆时,我找不到答案


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

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

我刚开始使用Ninject(并使用Moq),所以我对它没有太多的经验,但它不再需要用于测试的默认构造函数。它还可以进行更多的分类,有助于使您的测试完全独立于任何外部因素

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