c# – 如何测试没有返回值的函数?

前端之家收集整理的这篇文章主要介绍了c# – 如何测试没有返回值的函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有视觉工作室为我班上的每个成员创建一个测试.这是一个例子:
/// <summary>
///A test for CloseCurrentTextLogFile
///</summary>
[TestMethod()]
public void CloseCurrentTextLogFileTest()
{
  Logger.CloseCurrentTextLogFile();
  Assert.Inconclusive( "A method that does not return a value cannot be verified." );
}

基于断言字符串,我想知道如何测试这个…任何想法?

解决方法

静态方法自然会使自己相当不稳定,所以我的建议是基于重构代码远离静态方法.

我会将Logger变成一个在构造函数获取IO对象的实例类.这将允许您存根IO对象,并且您可以断言已调用IO对象的Close方法.

仅当您希望使代码100%可测试时才这样做.否则,我同意莫,如果它不可测试,那么不要写强制测试…那些往往非常脆弱.最后,您需要对您的代码务实.通常记录器对于保持静态是有用的,但正如我已经提到的,这些往往是非常不稳定的….所以只是务实你的工作并且不要仅仅为了获得100%的代码覆盖而编写测试. .100%将有价格……

UPDATE

这就是为什么这不是真正可以从单元测试的教条POV中测试的.您没有测试工作单元,而是测试Logger和Logger的依赖项(在本例中为IO对象).它还使您的测试变慢并且需要环境设置和状态(您必须首先打开一个实际文件关闭它,对吧?).这些都不适合单元测试,但是对于集成测试来说还不错……所以这取决于你正在编写什么样的测试.

原文链接:https://www.f2er.com/csharp/244766.html

猜你在找的C#相关文章