假设我的 Foo
类有以下内容:
readonly IService service;
public Foo(IService service)
{
if (service == null)
throw new ArgumentNullException("service");
this.service = service;
}
public void Start()
{
service.DoStuff();
}
到目前为止,我对构造函数进行了一次单元测试,我在其中传入 null 以验证是否抛出了 ArgumentNullException
。我是否需要对我的构造函数进行第二次单元测试,在其中传递有效的 IService
并验证 this.service
是否已设置(这需要公共(public)访问器)?
或者我应该只依靠我的单元测试来测试 Start
方法来测试这个代码路径吗?
最佳答案
设置 this.service
是一个实现细节,因此您应该只测试它是否在预期的地方使用,并通过 Start
方法测试它。以免您的测试变得脆弱。
您只想测试您的服务是否得到适当使用。您不应该关心它是如何存储的。
关于c# - 单元测试构造函数注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751602/