Я пытаюсь написать интеграционный тест для своего API, и я пытаюсь использовать TestServer на .netCore и использовать xunit.
Но я всегда получаю 500 ошибок из запроса.Я также пытался запросить онлайн-ссылку для тестирования (https://jsonplaceholder.typicode.com/users), но даже таким образом я получаю 500.
Кстати, когда я запускаю свой API и проверяю метод, который я пытаюсьтест набирает 200 и работает отлично.
Это все сообщение, которое я получаю.
Имя теста : RepoCore.TEST.IntegrationTests.IntegrationTest.QueryFromEntitiyTestAsync
Test FullName : RepoCore.TEST.IntegrationTests.IntegrationTest.QueryFromEntitiyTestAsync
Источник теста : C: \ Users \ Sercan \ source \ repos \RepoCore.API \ RepoCore.TEST \ IntegrationTests \ IntegrationTest.cs: строка 0
Результат теста : Не удалось Продолжительность теста : 0: 00: 04,645
Результат StackTrace :
в RepoCore.TEST.IntegrationTests.IntegrationTest.QueryFromEntitiyTestAsync () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение ---
Сообщение о результате : Ошибка Assert.Equal ()
Ожидаемый : ОК
Фактический : InternalServerError
public class IntegrationTest : IDisposable
{
private DataContext _context;
private readonly HttpClient _client;
public IntegrationTest()
{
var configuration = new ConfigurationBuilder().SetBasePath(Path.GetFullPath(@"../../../../../../")).Build();
var server = new TestServer(new WebHostBuilder().UseStartup<Startup>().UseConfiguration(configuration));
var serviceProvider = new ServiceCollection().AddEntityFrameworkSqlServer().BuildServiceProvider();
var builder = new DbContextOptionsBuilder<DataContext>();
builder.UseSqlServer("Server=xyz;Database=xyz; User ID=xyz;Password=1; Trusted_Connection=True;").UseInternalServiceProvider(serviceProvider);
_context = new DataContext(builder.Options, _logContext);
_context.Database.Migrate();
_client = server.CreateClient();
}
[Fact]
public async Task QueryFromEntitiyTestAsync()
{
API.Models.Repos newrepo = new API.Models.Repos { RepoName = "TestName2", RepoAdress = "Some Street", IsActive = 1 };
_context.Repos.Add(newrepo);
_context.SaveChanges();
var response = await _client.GetAsync("/api/Repo/GetRepoById?RepoId=" + newrepo.RepoID);
//var response = await _client.GetAsync("https://jsonplaceholder.typicode.com/users");
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
}
}