我有一个支持多种部署模式的项目:InMem,OnPremise,Cloud。 另外,每个项目都有像TimeDistance这样的小型服务,它可以连接到WCF,也可以连接到API。如何使UnitTests以不同的样机设置运行两次
在unitTestMockup我可以说,这就是我想要的使用方法:
Service.TimeDistance = new WCFTimeDistance()/new APITimeDistance().
到现在为止我只有WCFTimeDistance,但现在我们正处于过渡模式搬到APITimeDistance但在此期间,我想,当我运行测试来运行两次,一次使用API的WCF。
这样做的好方法是什么?
I use C# 4.5
Microsoft.VisualStudio.QualityTools.UnitTestFramework as framework for unitTests
期望的工作流程的一个简单的例子是这样的:
1)Mockup: Service.TimeDistance = new WCFTimeDistance();
2)UnitTest: CheckDistanceBetweenTwoLocationsTest()
{
Service.TimeDistance.CalculateDistance(Location1, Location2) // WCFTimeDistance
}
3)Mockup: Service.TimeDistance = new APITimeDistance();
UnitTest: CheckDistanceBetweenTwoLocationsTest()
{
4)Service.TimeDistance.CalculateDistance(Location1, Location2) // APITimeDistance
}
对不起 - 什么语言,什么单元测试框架?另外,你能提供[mcve]吗?还是很好的问题! – Mafii
编辑,谢谢! –
@AndreiDutu创建两个单元测试。也看看使用抽象而不是静态类。这将使嘲笑和测试更容易 – Nkosi