我是Pex和痣的新手。我想在我的代码上运行Pex,但是我使用了构造函数注入。有没有办法指导Pex如何注入构造函数?Pex&痣 - 依赖注射
编辑
public UserLogic(IUserRepository userRepository)
{
_userRepository = userRepository;
}
public int GetUsersAge(int id)
{
User user = _userRepository.GetById(id);
DateTime DOB = user.DOB;
DateTime now = DateTime.Today;
int age = now.Year - DOB.Year;
if (DOB > now.AddYears(-age)) age--;
return age;
}
我需要注入存根userRepository。当调用_userRepository.GetById(id)时,Pex失败并返回一个NullReferenceException。我一直在使用Moq进行单元测试,但是我想切换到pex和痣
我应该使用PexFactory创建我的存根吗?
显示一些代码,你可以用痣更换任何代码。 – Peter
这不完全正确,有一些情况下你将无法使用痣(例如http://social.msdn.microsoft.com/Forums/en-US/pex/thread/c262d8f1-246e-4157 -a7b4-f7ddeaf1890c /) – Gorgsenegger
还有一件事,我认为如果你有机会从头开始设计你的应用程序,那么只要你正确地接口等,你通常应该对MOQ适用。 痣可以帮助遗留的代码,你可能无法/不允许/ ...改变了。 – Gorgsenegger