我在单元测试方面有点新手.偶然发现单元测试延迟加载属性的问题,并想知道是否有一个简单的解决方案:
private SubscriptionType _subscriptionType;
public SubscriptionType SubscriptionType
{
get
{
if (_subscriptionType == null ||_subscriptionType.SubscriptionTypeId != this.SubscriptionTypeId)
{
if (this.SubscriptionTypeId !=0)
_subscriptionType = SubscriptionType.Load(this.SubscriptionTypeId);
}
return _subscriptionType;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要测试属性中的逻辑(if语句)而不是实际的SubscriptionType加载功能 - 似乎这里最明显的方法可能是抽象SubscriptionType.Load并使用某种类型的IoC来替换mock方法.我只是想知道是否有任何更简单的方法来避免这种重构 - 似乎只是为了编写正确的单元测试用例而过度工程.你的意见?谢谢!