【发布时间】:2025-11-25 22:20:06
【问题描述】:
我在 FakeItEasy 和 Castle Windsor 中都很菜鸟,这就是为什么我在搜索 Google 时遇到问题,因为我不知道要搜索的关键字。
现在问题来了
我正在上课
public class PersonService : IPersonService
{
IMarriageHelper objIMarriageHelper;
IPersonRepository objIPersonRepository;
public PersonService(IMarriageHelper objMarriageHelper, IPersonRepository objPersonRepository)
{
this.objIMarriageHelper = objMarriageHelper;
this.objIPersonRepository = objPersonRepository;
}
}
现在我正在使用 Castle Windsor 在单元测试用例中解析我的 PersonService 类。
var objContainer = new WindsorContainer();
objContainer.Register(Component.For<PersonService>());
objContainer.Register(Component.For<IMarriageHelper>().ImplementedBy<MarriageHelper>());
objContainer.Register(Component.For<IPersonRepository>().ImplementedBy<PersonRepository>());
var objPersonService = objContainer.Resolve<PersonService>();
现在的问题是我想在解析 PersonService 而不是 MarraigeHelper 时发送 PersonRepository 的假对象。
请帮我解决这个问题,因为我对此很陌生。
【问题讨论】:
-
你也可以试试autofixture - 非常适合这份工作。
标签: asp.net unit-testing mocking inversion-of-control castle-windsor