我正在使用Moles框架进行模拟。我遇到了一些包含没有无参数构造函数的对象的障碍。当我创建有问题的对象时,我必须提供一个ID,它启动对数据库的调用以设置对象属性。这意味着通过Moles进行更多拦截。 如果对象有一个简单的构造函数,我的测试会更顺畅。
我记得在某处提到默认构造函数对于测试非常重要。当我去谷歌确认我的记忆时,我找不到答案。
提供无参数构造函数:对测试有用还是重要?无关?
答案 0 :(得分:1)
我认为你不应该在你的对象构造函数中真正做那种事情,因为它将你的测试与你的数据库紧密联系起来没有任何用处。像Ninject这样的依赖注入框架在这里会有很大的帮助。你没有默认的构造函数,但你做了一些设置,让Ninject将创建测试对象时所需的一切粘在一起。
我刚开始使用Ninject(并使用Moq),所以我没有大量的使用经验,但它不再需要用于测试的默认构造函数。它还可以进一步排序,有助于使您的测试完全独立于任何外部测试。
我知道这是一个与语言无关的问题所以Ninject可能与你无关,但这是我对单元测试的一般看法。