如何解决简单测试单元的惰性负载特性的方法
| 我在单元测试中有点新手。偶然发现了一个对延迟加载属性进行单元测试的问题,并想知道是否有一个简单的解决方案: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;
}
}
我需要测试属性(如果语句)中的逻辑,而不是实际的SubscriptionType加载功能-似乎最明显的方法可能是抽象SubscriptionType.Load并使用某种IoC来替换模拟方法。
我只是想知道是否有任何更简单的方法来避免这种重构-似乎只是为了编写正确的单元测试用例而进行了过度设计。
你的想法?
谢谢!解决方法
除非要使用TypeMock隔离器或Moles,否则必须将Load方法隐藏在接口后面,并将其注入到类中。没有办法解决,但您不仅会出于可测试性而这样做。通常,您还倾向于从此类重构中更好地分离关注点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。