Я тестирующих этот заводUnit Test с асинхронным неубедительны с FluentAssertions и NSubstitute
public class ContratoFactory : IContratoFactory
{
private readonly IContratoPodeSerCriadoValidation _contratoPodeSerCriadoValidation;
public ContratoFactory(IContratoPodeSerCriadoValidation contratoPodeSerCriadoValidation)
{
_contratoPodeSerCriadoValidation = contratoPodeSerCriadoValidation;
}
public async Task<IValidationResult> Build(Contrato entity)
{
try
{
var result = _contratoPodeSerCriadoValidation.Valid(entity);
}
catch (Exception ex)
{
// throw
}
}
public async Task AdicionarLocalBase(Contrato entity)
{
}
}
и вот мой тестовый класс
[TestClass]
public class ContratoFactoryTests
{
private IContratoPodeSerCriadoValidation _contratoPodeSerCriadoValidation;
private ContratoFactory _contratoFactory;
[TestInitialize]
public void Initialize()
{
_contratoPodeSerCriadoValidation = Substitute.For<IContratoPodeSerCriadoValidation>();
_contratoFactory = new ContratoFactory(_contratoPodeSerCriadoValidation);
}
[TestMethod]
public async Task AoSerCriadoOContratoDeveSerValidado()
{
var contrato = ContratoValues.ContratoComEmpresaENomeValido;
await _contratoFactory.Build(contrato);
_contratoPodeSerCriadoValidation.Valid(contrato).Received();
}
}
Когда я запускаю свои тесты, то Thes не работает , или вернуть результат «Неконкретный».
Как проверить асинхронные вызовы с помощью NSubstitute и FluentAssertions?
UPDATE 19/05/16
Я установил методы испытаний, чтобы вернуть Task вместо пустоты и испытание бросает NullReferenceExceptions
Первое, что нужно исправить - измените свой метод тестирования, чтобы вернуть 'Задача', а не' void'. Это может быть не все, что вам нужно сделать, но вы обязательно должны это сделать. –
Thanks =] id Works. И это заставляет мои асинхронные тесты работать. Теперь у меня есть исключение NullReferenceObject. – Jedi31
Вы должны изменить ваш вопрос с помощью обновленной информации или удалить свой вопрос. –