是否存在一组单元测试,这些单元测试将验证我对接口的实现是否正确?具体来说,我正在使用ISet<T>
的实现,并希望将其基本上插入到单元测试中以验证我的实现是否正确。 (而不是我提出5-20个单元测试以获得良好的覆盖率)
似乎所有接口都可以为它们编写一些通用的单元测试。
答案 0 :(得分:0)
Software Engineering中有关于此事的有用文章,代码看起来像这样:
private void Test<TService,TFilter>(string urlSuffix)
where TService : SoapHttpClientProtocol, new()
where TFilter : new()
{
string serviceUrl = Helper.GetBaseUrl() + urlSuffix;
TService service = new TService();
service.Credentials = Helper.GetCredentials();
service.Url = serviceUrl;
TFilter[] filter = { new TFilter() };
service.ReadMultiple(filter, null, 0);
}
[TestMethod]
public void PlaceOfWork()
{
Test<PlaceOfWork_Service,PlaceOfWork_Filter>("PlaceOfWork");
}
这是模拟服务连接和访问的通用方法,但也可以轻松地应用于接口。
但是 请注意,如果在单元测试中使用泛型,则会失去粒度,这是因为您的测试将涉及多个案例。
很快就会不清楚您在每个界面中正在测试什么
如果在第一个测试之后测试失败,则您将无法发现更多导致fail masking.的错误。
检查此解决方案,稍作调整,以了解其所有优点和缺点,并阅读类似的文章。
答案 1 :(得分:0)