【发布时间】:2017-02-11 04:35:43
【问题描述】:
我有一个项目支持多种部署模式:InMem、OnPremise、Cloud。 此外,每个项目都有像 TimeDistance 这样的小型服务,可以连接到 WCF,也可以连接到 API。
在 unitTestMockup 中我可以说出我想使用哪一个:
Service.TimeDistance = new WCFTimeDistance() / new APITimeDistance().
到目前为止,我只有 WCFTimeDistance,但现在我们处于过渡模式以转移到 APITimeDistance,但与此同时,我希望在运行测试时运行两次,一次使用 WCF,一次使用 API。
有什么好的方法可以做到这一点?
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
}
【问题讨论】:
-
对不起 - 什么语言,什么单元测试框架?另外,你能提供一个minimal reproducible example吗?不过,很好的问题!
-
@AndreiDutu 创建两个单元测试。还要考虑使用抽象而不是静态类。这将使模拟和测试更容易
标签: c# unit-testing vs-unit-testing-framework mockups