我有一個方法,我試圖測試和需要測試是否引發錯誤。如果員工存儲庫引發錯誤,我想確保我返回EmployeeServiceError。我正在使用FakeItEasy模擬框架。方法內FakeItEasy模擬錯誤
這裏是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 2013-02-21 05:28:01