2021-02-23 乐帮网
unittest
从 Visual Studio 2017 14.8 版本开始,.NET 语言主要包括适用于 NUnit 和 xUnit 的内置模板。 当然还有一个MSTest,它们的主要的应用场景是什么呢?
1、MSTest
首先说一下这个MSTest吧,这个主要是微软自己开发的一套框架,主要经历了V1 和V2两个大版本,发展到现在也是一路的改进,功能性和易用性上都有大幅度的提高,但是知名度并不是Number One。支持跨平台,还是建议大家尝试使用的。典型的代码块如下:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.IO;
using System;
namespace HelloWorldTests
{
[TestClass]
public class UnitTest1
{
private const string Expected = "Hello World!";
[TestMethod]
public void TestMethod1()
{
using (var sw = new StringWriter())
{
Console.SetOut(sw);
HelloWorldCore.Program.Main();
var result = sw.ToString().Trim();
Assert.AreEqual(Expected, result);
}
}
}
2、Unit Test
这个是就是我们之前熟知的Unit Test,只支持Windows 下的.NET Framework。随着NUnitTest的开源免费这个的使用量一直在减少。
3、NUnit Test
这个是目前使用率最高的单元测试,所支持的框架多,插件也比较多,功能完善,只有你用不到的,没有它实现不了的。同时也支持跨平台支持NET Core。典型的代码块如下:
using NUnit.Framework;
using System.IO;
using System;
namespace HelloWorldTests
{
public class Tests
{
private const string Expected = "Hello World!";
[SetUp]
public void Setup()
{
}
[Test]
public void TestMethod1()
{
using (var sw = new StringWriter())
{
Console.SetOut(sw);
HelloWorldCore.Program.Main();
var result = sw.ToString().Trim();
Assert.AreEqual(Expected, result);
}
}
}
}
4、XUnit Test
这个是一个比新的单元测试框架,它是在NUnit的基础上重新开发的一个框架。它的主要思想是减少测试用例本身的复杂性,使单元测试回归到测试内容本身,而不是复杂在如何写测试。所以说XUnit Test提供的测试功能实现理论上更简单。也是比较看好的。典型的代码如下:
using System;
using Xunit;
using System.IO;
namespace HelloWorldTests
{
public class UnitTest1
{
private const string Expected = "Hello World!";
[Fact]
public void Test1()
{
using (var sw = new StringWriter())
{
Console.SetOut(sw);
HelloWorldCore.Program.Main();
var result = sw.ToString().Trim();
Assert.Equal(Expected, result);
}
}
}
}
https://lebang2020.cn/details/2102232ibetegi.html
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力