У меня есть метод, который я пытаюсь протестировать и вам нужно проверить, если ошибка была выбрана. Если репозиторий сотрудника вызывает ошибку, я хочу убедиться, что я возвращаю EmployeeServiceError. Я использую фреймворк FakeItEasy.FakeItEasy mock error in method
Вот код FakeItEasy:
// Arrange
var service = new EmployeeService(mockEmployeeRepository, mockCryptographer, mockApplicationUserRepository, mockEmployeeAddressRepository);
IEnumerable<EmployeeDTO> employeeDTOs;
// Act
employeeDTOs = service.GetEmployees();
// Assert
// How do I check the EmployeeServiceException thrown?
A.CallTo(() => mockEmployeeRepository.GetAllForUi())
.Throws(new NullReferenceException());
Вот метод я тестирую:
public IEnumerable<EmployeeDTO> GetEmployees()
{
IEnumerable<EmployeeDTO> employeeDTOs = null;
try
{
var employees = _employeeRepository.GetAllForUi();
employeeDTOs = Mapper.Map(employees, employeeDTOs);
}
catch (Exception exception)
{
throw new EmployeeServiceException(exception);
}
return employeeDTOs;
}
Какая тестовая среда вы используете? NUnit, XUnit, ...? Почему бы не проверить исключение, используя структуру тестирования. XUnit имеет утверждение Assert.Throws, которое обрабатывает такую проверку http://goo.gl/F2Bx1 – cecilphillip