我似乎遇到了问题,我有一个类(LoginService)在构造函数中接受 IUser。这是为了执行集成测试而不是单元测试,因此我不想模拟这些,我已经有了一些单元测试,并且它们使用带有固定装置的 Moq 工作得很好。
我设置了我的装置:-
var fixture = new Fixture();
然后我希望能够冻结 IUser 的一个版本,我尝试了以下操作,但我无法让它工作,它抱怨它无法创建实例,可能是由于没有构造函数。
var user = fixture.Freeze<IUser>();
所以我设法让它发挥作用,执行以下操作
IUser user = new User(); // Create my IUser manually
fixture.Inject(user);
然后最后创建 sut ,果然实例被注入了。
var sut = fixture.Create<LoginService>();
那么我这样做正确吗?我可以不使用 Freeze 而应该继续手动创建 IUser 并将其注入到装置上吗?
期待任何帮助或信息
是的,这是正确的——如果你想提供一个特定的实例IUser
to the LoginService
你必须注射它。
请记住Inject
将影响所有后续请求(如果有)IUser
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)