使用Xunit来进行单元测试

Julie ·
更新时间:2024-11-13
· 728 次阅读

  不管你爱与不爱,单元测试对于一个软件的长治久安还是必不可少的一环。在Visual Studio 2012后,VS中的测试浏览器也能与第三方的集成了,用起来还是非常方便的。目前在.Net框架下的测试工具主要有Nunit、内置的MSTest以及Xunit这三个工具,本文简单的介绍一下如何在VS中使用XUnit这个测试框架的后起之秀。   安装Xunit:   Xunit的安装现在不需要插件支持了,直接使用NuGet安装如下两个库即可:   PM> Install-Package xunit   PM> Install-Package xunit.runner.visualstudio -Pre (Visual Studio测试浏览器支持, VS2015目前必须装Pre的)   编写测试用例:   一个简单的测试用例如下: public class TestClass1 { [Fact] public void testMax() { Assert.Equal(3, Math.Max(3, 2)); } [Fact] public void testFail() { Assert.Equal(2, Math.Max(3, 2)); } }   执行测试用例   在测试浏览器中执行RunAll即可(修改后不用编译,它会自动编译)

  测试方式说明:   声明测试用例:   Xunit里面不需要TestClass之类Attribute来标记测试用例类,只需要满足如下条件即可:   测试类必须是public的   测试用例用FactAttribute标记   断言:   Assert类用来验证测试测试函数的输出结果。   Assert.Equal(3, Math.Max(3, 2));   也可以使用一些扩展的断言库,常用的是xunit.should库,它是以扩展函数的方式进行验证,看起来更加舒服。   PM> Install-Package xunit.should   Math.Max(3, 2).ShouldBe(3); $new_page$

  构建和析构:   Xunit里面并不是通过SetUp和TearDown标记来表明测试用例的构建和析构操作,它每次执行测试用例的时候都会插件测试用例类,执行完成后,如果其实现了IDispose接口,则会调用Dispose函数,更加简洁明了。也是说:   在测试用例类的构造函数指向数据构建操作   在Dispose函数中指向数据清理操作   异常测试   Xunit并不是通过Attribute来标记异常捕获的,而是直接使用Assert.Throws断言函数来验证异常。 public class TestClass1 { [Fact] public void testException() { Assert.Throws<InvalidOperationException>(() => operation()); } void operation() { throw new InvalidOperationException(); } }   更改测试用例名称:   [Fact(DisplayName = "Max函数测试")]   跳过测试用例:   [Fact(Skip ="重构未完成")]   分组:   [Trait("Group", "Category")]

 



xunit 单元 单元测试 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章