|
|
|
@ -5,15 +5,93 @@ using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
using Xunit;
|
|
|
|
|
using Xunit.Abstractions;
|
|
|
|
|
using Xunit.Extensions;
|
|
|
|
|
using Xunit.Sdk;
|
|
|
|
|
|
|
|
|
|
namespace xUnitStudy.WebApi.Test
|
|
|
|
|
{
|
|
|
|
|
public class UseXUnitTest
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用 xUnit
|
|
|
|
|
/// 测试类不需要加任何特性
|
|
|
|
|
/// NUnit需要加TestFixture特性,MSTest需要加TestClass特性
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Trait(name:"测试类分组",value:"该类内所有测试方法默认属此组")]
|
|
|
|
|
public class UseXUnitTest:IDisposable
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 每次测试前的准备
|
|
|
|
|
/// 构造函数 替代 SetUp或TestInitialize,进行初始化
|
|
|
|
|
/// </summary>
|
|
|
|
|
public UseXUnitTest()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 每次测试后的清理
|
|
|
|
|
/// 实现IDisposable接口,替代TearDown或TestCleanup 进行清理释放操作
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Fact特性,标识测试方法
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Use_Fact_Test()
|
|
|
|
|
{
|
|
|
|
|
//永久通过测试断言的写法
|
|
|
|
|
Assert.True(true,"Fact特性,表示测试方法");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact(DisplayName = "定制测试方法名称")]
|
|
|
|
|
public void Use_Fact_DisplayName_Test()
|
|
|
|
|
{
|
|
|
|
|
Assert.True(true,"使用Fact特性的DisplayName属性,表示:定制的测试方法名称");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact(Skip = "暂时忽略测试")]
|
|
|
|
|
public void Use_Fact_Skip_Test()
|
|
|
|
|
{
|
|
|
|
|
Assert.True(true,"使用Fact特性的Skip属性,表示:暂时忽略测试");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用Fact特性的Timeout参数
|
|
|
|
|
/// 设置:测试方法超时时间(豪秒)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact(Timeout =1000)]
|
|
|
|
|
public void Use_Fact_Timeout_Test()
|
|
|
|
|
{
|
|
|
|
|
Assert.True(true,"使用Fact特性的Timeout属性,设置:测试方法超时时间(豪秒)");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 分组测试,可以按分组显示测试结果
|
|
|
|
|
/// Trait可用于:程序集(AssemblyInfo.cs文件中)、测试类和测试方法三个层次
|
|
|
|
|
/// 一个测试方法同时属于多外组
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Test()
|
|
|
|
|
[Trait(name:"定制分组",value:"红队")]
|
|
|
|
|
[Trait(name:"定制分组",value:"蓝队")]
|
|
|
|
|
public void Use_Trait_Test()
|
|
|
|
|
{
|
|
|
|
|
Assert.True(true,"使用Trait特性,设置:测试分组,测试结果可以按组显示");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Theory]
|
|
|
|
|
[InlineData(1)]
|
|
|
|
|
[InlineData(2)]
|
|
|
|
|
[InlineData(3)]
|
|
|
|
|
[InlineData(4)]
|
|
|
|
|
public void Use_Theory_Test(int number)
|
|
|
|
|
{
|
|
|
|
|
Assert.Equal(1, 1);
|
|
|
|
|
var userPara = number;
|
|
|
|
|
|
|
|
|
|
Assert.True(true,"使用Theory特性和InlineData特性,传递不同参数,多次执行测试");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|