使用Visual Studio在C#中进行单元测试入门

Mal*_*ist 16 c# unit-testing visual-studio

我知道Visual Studio提供了一些单元测试的好东西.我如何使用它们,你如何使用它们?我应该知道单元测试(假设我什么都不知道).

这个问题是类似的,但它没有解决Visual Studio可以做什么,请不要因此而将其标记为重复.发布为社区Wiki,因为我不是想成为一名代表妓女.

Sco*_*man 6

最重要的区别在于,MSTest支持内置于Visual Studio中,可直接提供单元测试,代码覆盖和模拟支持.为了在外部(第三方)单元测试框架中执行相同类型的事物,通常需要多个框架(单元测试框架和模拟框架)和其他工具来进行代码覆盖分析.

使用MSTest单元测试工具的简单方法是打开要为其创建单元测试的文件,在编辑器窗口中单击鼠标右键,然后从上下文菜单中选择"创建单元测试..."菜单.我更喜欢将我的单元测试放在一个单独的项目中,但这只是个人偏好.这样做会创建一种"模板"测试类,它将包含测试方法,允许您测试类的每个函数和属性.此时,您需要确定测试通过或失败的含义(换句话说,确定在给定一组输入时应该发生什么).

通常,您最终会编写与此类似的测试:

string stringVal = "This";
Assert.IsTrue(stringVal.Length == 4);
Run Code Online (Sandbox Code Playgroud)

这表示对于名为stringVal的变量,在赋值后,Length属性应该等于4.

另一个线程中列出的资源应该为了解一般的单元测试提供一个很好的起点.


Eri*_*ric 2

VS 中的单元测试结构在用法上与 NUnit 类似。它的一个有趣(且有用)的功能确实与 NUnit 显着不同。VS 单元测试可用于未考虑单元测试而编写的代码。

您可以在编写应用程序后构建单元测试框架,因为测试结构允许您外部引用方法调用并使用启动和拆卸代码来准备测试环境。例如:如果类中有一个方法使用该方法外部的资源,则可以在 Ramp-up 类(VS 为您创建)中创建它们,然后在单元测试类(也创建)中测试它VS 为您服务)。当测试完成时,拆卸类(再次...由 VS 为您提供)将释放资源并进行清理。整个过程存在于您的应用程序之外,因此不会干扰代码库。

VS单元测试框架实际上是一个实现得很好并且易于使用的框架。最重要的是,您可以将它与未设计考虑单元测试的应用程序一起使用(这对于 NUnit 来说并不容易)。