У меня проблема с тестированием моих разных конечных точек API. Конечная точка, которую я тестирую, использует мой второй API. Поэтому конечная точка, которую я тестирую, зависит от моего другого сервиса, который должен быть запущен. Когда я нажимаю «Запустить все тесты в Visual Studio», служба, на которую опирается мой тест, перестает работать.
Я попытался запустить службу, на которую опирается моя конечная точка, и запустить «Выполнить выбранные тесты». Кажется, это работает.
Это следующий тест, который я пытаюсь сделать:
[Theory]
[MemberData(nameof(TestDataGenerator.GetCreateAnswerCommandsFromDataGenerator),
MemberType = typeof(TestDataGenerator))]
public async void CreateNewAnswer_ReturnsBadRequest(CreateAnswerCommand a,
CreateAnswerCommand b,
CreateAnswerCommand c )
{
Assert.True(await IsBadRequest(a));
Assert.True(await IsBadRequest(b));
Assert.True(await IsBadRequest(c));
}
public class CreateAnswerCommandValidator : AbstractValidator<CreateAnswerCommand>
{
private readonly IUserServiceClient _client;
public CreateAnswerCommandValidator(IUserServiceClient client)
{
_client = client;
RuleFor(x => x.TextTranslated).NotEmpty().NotNull();
RuleFor(x => x.RequestId).NotEmpty().NotNull();
RuleFor(x => x.UserId).MustAsync(IdExists).WithMessage("ID must be registered");
}
private async Task<bool> IdExists(Guid arg1, CancellationToken arg2)
{
bool exists = await _client.CheckUserId(arg1);
return exists;
}
CreateNewAnswerCommand
имеет от MustAsyns
до FluentValidation
, который вызывает my UserService
и проверяет, существует ли UserId
.
Я хочу, чтобы два тестовых проекта начинали вращаться, а затем закрывались, когда я нажимал Run All Tests.