【发布时间】:2020-06-24 19:29:27
【问题描述】:
我正在开发一个新的 MVC 5 应用程序。我的项目中有一个集成层,其中有一个对外部 Web 服务的服务引用。
然后我创建了一个包含一些方法的接口 - 然后我有一个如下所示的服务类:
public class MyService : IMyService
{
private readonly ExternalServiceClient _serviceClient;
public MyService()
{
_serviceClient = new ExternalServiceClient ("WSHttpBinding_IMyService");
}
public string GetName(Coordinate[] coordinates)
{
string name = string.Empty;
name = _serviceClient.GetInformationsForCoordinates(coordinates);
return name;
}
请注意,这已被剥离,实际上将添加带有异常处理等的 try catch 块
我有一个用于集成层单元测试的 Integration.Tests 项目。测试 GetName 方法的最佳实践方法是什么。我是否应该在 Tests 项目中向服务的端点添加另一个服务引用,或者如果我们正在使用 Moq,我是否可以创建我的实际服务的实例,例如 Web 层将调用 - 以及如何完成?
【问题讨论】:
-
顺便说一句,您的服务似乎没有多大作用。从 ExternalServiceClient 中提取接口并将其作为依赖项直接传递可能会更好。
标签: c# unit-testing design-patterns moq