|
|
namespace OptionStudy.Next
|
|
|
{
|
|
|
public class UseXunitTest:IDisposable
|
|
|
{
|
|
|
private readonly ITestOutputHelper? _output;
|
|
|
public UseXunitTest(ITestOutputHelperAccessor outputHelperAccessor)
|
|
|
{
|
|
|
if (outputHelperAccessor == null)
|
|
|
{
|
|
|
throw new ArgumentNullException(nameof(outputHelperAccessor));
|
|
|
}
|
|
|
_output = outputHelperAccessor.Output;
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// xUnit 可用性测试
|
|
|
/// </summary>
|
|
|
[Fact]
|
|
|
public void UsabilityTest()
|
|
|
{
|
|
|
Assert.True(true, "使用xUnit测试框架!");
|
|
|
_output?.WriteLine("使用 xUnit 框架输出信息测试!");
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 断言不发生异常
|
|
|
/// 使用:xUnit 变通方法
|
|
|
/// </summary>
|
|
|
[Fact]
|
|
|
public void DoesNotThrow_Test()
|
|
|
{
|
|
|
//待执行代码段
|
|
|
Action codeSnippet = () =>
|
|
|
{
|
|
|
//业务代码
|
|
|
|
|
|
//模拟异常
|
|
|
//throw new Exception("我是特意抛出的异常!");
|
|
|
};
|
|
|
|
|
|
var exception = Record.Exception(codeSnippet);
|
|
|
Assert.Null(exception);
|
|
|
|
|
|
_output?.WriteLine("使用 xUnit 变通方法,断言不发生异常!");
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 断言不发生异常
|
|
|
/// 使用:FluentAssertions 库方式,断言不发生异常
|
|
|
/// </summary>
|
|
|
[Fact]
|
|
|
public void DoesNotThrow_UseFluentAssertions_Test()
|
|
|
{
|
|
|
//待执行代码段
|
|
|
Action codeSnippet= () =>
|
|
|
{
|
|
|
//业务代码
|
|
|
|
|
|
//模拟异常
|
|
|
//throw new Exception("我是特意抛出的异常!");
|
|
|
};
|
|
|
|
|
|
//断言:不发生异常
|
|
|
codeSnippet.Should().NotThrow();
|
|
|
|
|
|
_output?.WriteLine("使用 FluentAssertions 库方式,断言不发生异常!");
|
|
|
}
|
|
|
|
|
|
public void Dispose()
|
|
|
{
|
|
|
}
|
|
|
}
|
|
|
} |