我想单独测试wcf应用程序。但是我没有获得关于依赖注入和创建模拟对象的足够信息。任何人都可以给我一些建议吗?
答案 0 :(得分:0)
我建议你看一下nSubstitute。这是一个模拟框架,在我看来比其他一些更容易理解。 here是依赖注入的一些细节。 希望这有助于您入门。
答案 1 :(得分:0)
基本依赖注入并不是一个难以理解的概念。您需要执行以下步骤:
例如:
public interface IMyRepository
{
void SaveData();
}
public class MyRepository : IMyRepository
{
public void SaveData()
{
//...Do Something
}
}
public class MyDomainService
{
private readonly IMyRepository _repository;
public MyDomainService(IMyRepository repository)
{
_repository = repository;
}
public void SaveNewEntityInDatabase()
{
//... Do Something
_repository.SaveData();
}
}
通过这样做,您已经有效地将IMyRepositoryDependency注入到MyDomainService类中,所以现在您可以使用您喜欢的模拟框架来模拟或存根它,或者自己编写。
关于WCF问题的第一部分,我可以通过很多方式解释这个问题,因此您必须更具体地获得更好的帮助。
如果你想要做的是实际测试WCF服务,我建议你只将它们作为facade用于你的应用程序,这样你就不需要实际测试服务了,而是你的域对象业务层。
例如:
public class MyWCFService
{
public void SaveNewEntityInDatabase()
{
var myDomainBusinessService = new MyDomainBusinessService();
myDomainBusinessService.SaveNewEntityInDatabase();
}
}
public class MyDomainBusinessService
{
public void SaveNewEntityInDatabase()
{
//...Do Something
}
}
我可以提供更多信息,但是,我不能完全确定你需要什么。我跳过了WCF部分的依赖注入演示,试图保持示例简单。
希望这有帮助。