如何将依赖项注入asmx webservice webmethod
本文关键字:asmx webservice webmethod 注入 依赖 | 更新日期: 2023-09-27 18:07:37
我有一个带有这个方法的asmx webservice
[WebMethod]
double GetBookPrice(int bookID)
{
//instantiates a DiscountService,DeliveryService and a couple of other services
//uses various methods of these services to calculate the price
//e.g. DiscountService.CalculateDiscount(book)
}
有4个服务是这个方法的依赖项。
现在如何测试这个方法?我需要注入这些依赖项吗?或者我应该这么做吗?客户端只是发送一个int来检查价格。
谢谢
如果所有GetBookPrice
方法所做的是获取int
并将其传递给另一个方法,然后返回这些结果,那么我认为测试服务方法的价值是可疑的。它没有伤害来测试它,如果你想扩展GetBookPrice
方法的功能,它可能有价值。
public class FooWebService
{
private readonly ISomeDependency dependency;
public FooWebService(ISomeDependency dependency)
{
//this is what you call during your testing
this.dependency = dependency;
}
public FooWebService() : this(new ConcreteDependencyImplementation())
{
}
}
当你在测试时,你传入一个依赖项(或多个依赖项!)的实例。当您不进行测试时,依赖项将自动创建并通过调用无参数构造函数的方式提供。