You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
2.8 KiB
C#

namespace OptionsPattern.Sutdy.Advanced
{
public class UseXunitTest:IDisposable
{
private readonly ITestOutputHelper? _output;
private readonly IConfiguration _defaultConfig;
public UseXunitTest(ITestOutputHelperAccessor outputHelperAccessor,IConfiguration configuration)
{
if (outputHelperAccessor == null)
{
throw new ArgumentNullException(nameof(outputHelperAccessor));
}
if (outputHelperAccessor == null)
{
throw new ArgumentNullException($"<22><><EFBFBD><EFBFBD> {nameof(outputHelperAccessor)} Ϊ null, <20><><EFBFBD><EFBFBD> Startup.cs <20><>ע<EFBFBD><D7A2> IConfiguration");
}
_output = outputHelperAccessor.Output;
_defaultConfig = configuration;
}
/// <summary>
/// xUnit <20><><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
/// </summary>
[Fact]
public void UsabilityTest()
{
Assert.True(true, "6.2 <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ף<EFBFBD>ʹ<EFBFBD><CAB9>xUnit<69><74><EFBFBD>Կ<EFBFBD><D4BF>ܣ<EFBFBD>");
_output?.WriteLine("6.2 <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1> <20><><EFBFBD>ף<EFBFBD>");
}
/// <summary>
/// <20><>IoC<6F>л<EFBFBD>ȡĬ<C8A1><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Xunit.DependencyInjection <20><>
/// 2<><32>Startup.cs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
[Fact]
public void GetIConfiguration_FromDI_ByStartup_Test()
{
var appOption = _defaultConfig.Get<AppOption>();
Assert.NotNull(_defaultConfig);
Assert.NotNull(appOption);
Assert.Contains(nameof(AppOption.AppName), appOption.AppName);
}
/// <summary>
/// <20><><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// ʹ<>ã<EFBFBD>xUnit <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
/// </summary>
[Fact]
public void DoesNotThrow_Test()
{
//<2F><>ִ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>
Action codeSnippet = () =>
{
//ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ģ<><C4A3><EFBFBD>
//throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3><EFBFBD><EFBFBD><EFBFBD><ECB3A3>");
};
var exception = Record.Exception(codeSnippet);
Assert.Null(exception);
_output?.WriteLine("ʹ<><CAB9> xUnit <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3>");
}
/// <summary>
/// <20><><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// ʹ<>ã<EFBFBD>FluentAssertions <20>ʽ<E2B7BD><CABD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
[Fact]
public void DoesNotThrow_UseFluentAssertions_Test()
{
//<2F><>ִ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>
Action codeSnippet= () =>
{
//ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//ģ<><C4A3><EFBFBD>
//throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3><EFBFBD><EFBFBD><EFBFBD><ECB3A3>");
};
//<2F><><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
codeSnippet.Should().NotThrow();
_output?.WriteLine("ʹ<><CAB9> FluentAssertions <20>ʽ<E2B7BD><CABD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3>");
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>
/// </summary>
public void Dispose()
{
}
}
}