C#怎么使用MSTest进行单元测试

发布时间:2022-06-30 09:47:52 作者:iii
来源:亿速云 阅读:311

今天小编给大家分享一下C#怎么使用MSTest进行单元测试的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

目前MS发布了两个版本的MS TEST:

这两个版本使用起来还是大同小异的,MS TEST V2主要是为了.net core准备的,当然也可以在.net framework上运行,并且新加入了一些扩展。本文这里是针对MS TEST V2进行的介绍。

首先来写一个简单的用例:

[TestClass]
public class TestClass
{
    [TestMethod]
    public void TestPass()
    {
        Assert.IsTrue(true);
    }

                                                                                                            
    [TestMethod]
    public void TestFail()
    {
        Assert.IsTrue(false);
    }
}

写完后编译即可在测试管理器上看到用例,运行它就可以看到结果了:

C#怎么使用MSTest进行单元测试

测试用例声明:

Xunit并不需要TestClass声明,但给测试类声明也是有好处的,可以对其下的所有测试用例分组。

断言:

可以用Assert断言类来检验测试是否成功,也可以自己写帮助类抛异常检验。

构建和析构:

和Xunit非常类似,测试框架执行每个测试用例的时候,会创建测试类对象,测试用例执行完后,如果测试类是IDisposable的,会执行Dispose函数。因此,简单的做法是:

另外,也可以通过TestInitialize和TestCleanup两个Attribute来指定额外的构建和清理函数。通过函数指定的构建和析构函数在测试异步函数的时候还是非常有用的。这样,一个测试用例执行的顺序是

分组:

分组可以通过TestCategory标记:

[TestClass,TestCategory("MS TEST V2")]
public class TestClass

查看方式中要选择按特征分类:

C#怎么使用MSTest进行单元测试

这个标记也可以放在测试类,也可以放在测试用例上,效果不一样,请自行尝试。

参数传入:

这个是老版本的MS TEST的最大不足了,现在也可以通过DataRowAttribute指定测试用例的参数:

[DataTestMethod]
[DataRow(1, 2, 3)]
[DataRow(3, 5, 8)]
[DataRow(7, 6, 11)]
public void AddTest(int n1, int n2, int sum)
{
    Assert.AreEqual(sum, n1 + n2);
}

也可以指定多组参数,测试就会执行多次用例。在MS TEST V2的版本中,还可以通过ITestDataSource接口实现自定义数据源。

异常测试:

异常下现在也和xunit一样采用断言的方式捕获了。

public void TestException()
{
    Assert.ThrowsException<InvalidOperationException>(() => foo());

                                                                        
    void foo()
    {
        throw new InvalidOperationException();
    }
}

扩展:

在MS TEST V2中,微软提供了一定的扩展支持,如下图所示(这些扩展也大部分支持MS TEST V1)

C#怎么使用MSTest进行单元测试

具体包括如下几点:

详情:RFC 003

以上就是“C#怎么使用MSTest进行单元测试”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

推荐阅读:
  1. 如何使用VisualStudio进行单元测试
  2. 使用VisualStudio进行单元测试

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mstest

上一篇:vue2之vue.config.js怎么配置

下一篇:微信小程序怎么实现答题功能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》