测试基本

master
bicijinlian 4 years ago
parent 3613d4f3ce
commit 3fa852bfb6

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Testing;
using Microsoft.AspNetCore.Mvc.Testing.Handlers;
using Microsoft.AspNetCore.TestHost;
using Xunit;
using XUnitDIStudy.Model;
namespace XUnitDIStudy.Test
{
public class ControllerTest:IClassFixture<WebApplicationFactory<WebApp.Startup>>
{
private readonly WebApplicationFactory<WebApp.Startup> _factory;
public ControllerTest(WebApplicationFactory<WebApp.Startup> factory)
{
_factory = factory;
}
[Fact]
public async Task Test()
{
// Arrange
var client = _factory.CreateClient();
// Act
var response = await client.GetAsync("/Default/GetAll");
// Assert
response.EnsureSuccessStatusCode(); // Status Code 200-299
List<Student> result = System.Text.Json.JsonSerializer.Deserialize<List<Student>>(response.Content.ReadAsStringAsync().Result);
Assert.NotNull(result);
Assert.True(result.Count>0);
}
}
}

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
@ -7,7 +7,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AngleSharp" Version="0.14.0" />
<PackageReference Include="FluentAssertions" Version="5.10.3" /> <PackageReference Include="FluentAssertions" Version="5.10.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="5.0.1" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="5.0.1" /> <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="5.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
<PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit" Version="2.4.1" />

@ -19,9 +19,9 @@ namespace XUnitDIStudy.WebApp.Controllers
public class DefaultController : ControllerBase public class DefaultController : ControllerBase
{ {
private readonly ILogger<DefaultController> _logger; private readonly ILogger<DefaultController> _logger;
private readonly StudentService _studentService; private readonly IStudentService _studentService;
public DefaultController(ILogger<DefaultController> logger, StudentService studentService) public DefaultController(ILogger<DefaultController> logger, IStudentService studentService)
{ {
_logger = logger; _logger = logger;
_studentService = studentService; _studentService = studentService;

@ -12,6 +12,8 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using XUnitDIStudy.Service;
namespace XUnitDIStudy.WebApp namespace XUnitDIStudy.WebApp
{ {
public class Startup public class Startup
@ -26,6 +28,9 @@ namespace XUnitDIStudy.WebApp
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
services.AddControllers(); services.AddControllers();
services.AddScoped<IStudentService, StudentService>();
services.AddSwaggerGen(c => services.AddSwaggerGen(c =>
{ {
c.SwaggerDoc("v1", new OpenApiInfo { Title = "XUnitDIStudy.WebApp", Version = "v1" }); c.SwaggerDoc("v1", new OpenApiInfo { Title = "XUnitDIStudy.WebApp", Version = "v1" });

Loading…
Cancel
Save