agilelabs-fx-docs main testing/get-start.md

单元测试

GenericTestBase测试基类

能力

  • 基本的IOC
  • ILogger的支持
  • TestOutputHelper 支持
public class GenericTest : GenericTestBase
{
    public GenericTest(GenericTestFixture unitTestFixture, ITestOutputHelper testOutputHelper) : base(unitTestFixture, testOutputHelper)
    {
    }

    [Fact(DisplayName = "TestLogging")]
    public void TestLogging()
    {
        ScopedServiceProvider(sp =>
        {
            var logger = sp.GetRequiredService<ILogger<GenericTest>>();
            logger.LogInformation($"This is a info message");
        });
        Assert.True(true);
    }
}

集成测试示例

    public class BasicTests : WebApiTestBase<AppHostConfig>
    {
        private readonly WebApplicationFactory<AppHostConfig> _factory;

        public BasicTests(WebApplicationFactory<AppHostConfig> factory, ITestOutputHelper testOutputHelper) : base(factory, testOutputHelper)
        {
            _factory = factory;
        }

        [Theory]
        [InlineData("/Home/Index")]
        [InlineData("/HttpClientTest/Index")]
        public async Task Get_EndpointsReturnSuccessAndCorrectContentType(string url)
        {
            // Arrange
            var client = _factory.CreateClient();

            // Act
            var response = await client.GetAsync(url);

            // Assert
            response.EnsureSuccessStatusCode();
            Assert.True(response.IsSuccessStatusCode);
        }
    }