using System; using System.Collections.Generic; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.TestHost; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Hosting; using Newtonsoft.Json; using Xunit; using Xunit.Abstractions; using Xunit.Extensions; using Moq; using WebApiStudy.Model; using WebApiStudy.WebApp; namespace WebApiStudy.IntegrationTest { [Collection("GlobalTestServer")] public class UserControllerTest { private TestServer _server; private readonly HttpClient _client; public UserControllerTest(TestServerFixture testServer) { _server = testServer.TestServer; _client = _server.CreateClient(); } [Fact] public async Task GetUsers_Test() { var response = await _client.GetAsync("/api/user/GetAllUser"); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); IList list = JsonConvert.DeserializeObject>(responseString); Assert.Equal(5, list.Count); } [Fact] public async Task AddUser_Test() { Uri uri = new Uri("http://localhost:5000/api/user/AddUser"); HttpContent httpContent = new StringContent("{\"id\": 55,\"name\": \"张三\",\"age\": 23,\"gender\": 1}", System.Text.Encoding.UTF8, "application/json"); //HttpRequestMessage requestMessage = new HttpRequestMessage(); //requestMessage.RequestUri =uri ; //requestMessage.Method = HttpMethod.Post; //requestMessage.Content =httpContent; var response = await _client.PostAsync(uri, httpContent); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); (bool result, User user) = JsonConvert.DeserializeObject>(responseString); Assert.True(result); Assert.Equal(55, user.Id); } } }