我正在尝试编写一个依赖于 WCF 服务的类,并且我希望我的类可以进行单元测试。我想出了下面的代码,但遇到了一些棘手的情况
public class BenefitReason
{
private IWCFServiceClient _client;
public BenefitReason(IWCFServiceClient client)
{
_client = client;
}
public CanIssueEmercengyBenefit(string benefitReasonCode)
{
client.GetEmergencyBenefits().contains(benefitReasonCode);
}
//Rest of implementation for Benefit Reason
}
这是可单元测试的,因为我可以模拟IWCFServiceClient
,但是我失去了对客户的控制。BenefitReason
如果客户端通道在对象创建和调用之间关闭,CanIssueEmercengyBenefit
则会发生异常。
请就如何克服编写可以进行单元测试的代码与失去对 wcf 客户端实例化的控制的棘手情况提出建议。