[英]How to test if class works properly in C#?
我已经写了一堂课,想测试一下是否运行良好。 目前,我认为最好的方法是创建引用主项目的新控制台应用程序,然后创建类的新实例并将其弄乱。 这种方法与其他方法不同,它使用关键字(没有类的全名)和调试来启用IntelliSense。
任何人都知道如何以更方便的方式做到这一点,而无需制作新的控制台应用程序?
使用控制台应用程序测试您的班级就是所谓的“穷人单元测试”。
您想要进行此类测试的方向正确,我(以及SO上的其他大多数人)会建议使用某种类型的单元测试框架来帮助您。 ( 模拟对您可能也很重要和有用。)
这是东西。 无论使用哪种框架,或者是否使用控制台应用程序来测试代码,都必须创建一个单独的项目或一个单独的重要代码块,以便能够正确且独立地执行测试。 那只是过程的一部分。 这是一项投资,但不要让多余的工作阻止您这样做。 它将在未来的一小段时间内节省大量时间和皮肤。 甚至下周。
另外,在查找单元测试时,请确保还研究测试驱动的开发 (TDD)。
单元测试绝对是必经之路。 根据所运行的VS版本,可能内置了单元测试功能,或者您可能必须使用其他工具,例如NUnit。 这两个选项都不错,可以让您全面测试您的课程。
还请记住,从长远来看,一套完整的单元测试套件也将使重构变得更加容易。 如果您重构并破坏了单元测试,您就会知道自己在某处做了嘘声。 :)
单元测试是这里的前进方向>这是一篇很好的介绍性文章 。
单元测试的基本概念是,您隔离并调用代码的特定部分,并断言结果是预期的并且在合理范围内。 例如,假设您有一个简单的方法可返回浮点数的平方:
public float Square(float value)
{
return value * value;
}
合理的单元测试将是该方法返回正确的值,处理有争议的值等:
Assert.AreEqual(25, Square(5));
Assert.AreEqual(100, Square(-10));
单元测试也是查看代码如何处理边缘情况的好方法:
Assert.Throws<OverflowException>(Square(float.MaxValue));
如果您使用的是VS 2010,请查看Pex和Moles ...
Console App方法更像是您班上的测试工具,这很好。
但是您也可以使用单元测试框架来测试您的类。 Visual Studio内置了一个,也可以使用NUnit之类的东西。
另外,尝试在Visual Studio中使用对象测试平台。 它应该允许您创建一个新实例,修改和查看属性以及调用某些方法。 不过,它通常仅适用于非常简单的应用程序。
如果您使用Visual Studio 2008或更高版本,则可以使用MSTest框架测试代码:
1.打开“测试视图”窗口:“测试/ Windows /测试视图”;
2.添加新的单元测试项目:在解决方案资源管理器/添加/新建项目/测试项目中右键单击解决方案;
3.删除创建的测试项目中除UnitTest.cs文件以外的所有文件;
4.在[TestMethod]属性下的方法中编写单元测试:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var ranges = new Ranges();
int sum = ranges.CountOccurrences(11);
Assert.AreEqual(128, sum);
}
}
5,从第1页中添加的``测试视图''窗口中运行测试
6,在``测试/ Windows /测试结果''窗口中查看测试结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.