本來是想單元測試在下面的類的方法的方法單元測試,它返回一個空
public class DeviceAuthorisationService : IDeviceAuthorisationService
{
private DeviceDetailsDTO deviceDetailsDTO = null;
private IDeviceAuthorisationRepositiory deviceAuthorisationRepositiory;
public DeviceAuthorisationService(IDeviceAuthorisationRepositioryService paramDeviceAuthorisationRepository)
{
deviceAuthorisationRepositiory = paramDeviceAuthorisationRepository;
}
public void AuthoriseDeviceProfile(long paramUserID, string paramClientMakeModel)
{
if (deviceDetailsDTO == null)
GetCellPhoneDetails(userID);
if (deviceDetailsDTO.IsDeviceSelected == false)
throw new SomeCustomExceptionA();
if (deviceDetailsDTO.CellPhoneMakeModel.ToLower() != paramClientMakeModel.ToLower())
throw new SomeCustomExceptionB;
}
public void UpdateDeviceStatusToActive(long userID)
{
if (deviceDetailsDTO == null)
throw new InvalidOperationException("UnAuthorised Device Profile Found Exception");
if (deviceDetailsDTO.PhoneStatus != (short)Status.Active.GetHashCode())
deviceAuthorisationRepositiory.UpdatePhoneStatusToActive(deviceDetailsDTO.DeviceID);
}
private void GetCellPhoneDetails(long userID)
{
deviceDetailsDTO = deviceAuthorisationRepositiory.GetSelectedPhoneDetails(userID);
if (deviceDetailsDTO == null)
throw new SomeCustomException()
}
}
注:
- 方法名稱= AuthoriseDeviceProfile返回void
- 該方法檢查userSentMakeModel針對存儲在數據庫中的一個匹配
- 如果匹配 - 它只是返回(即不會更改任何狀態)
我們將如何單元測試這種方法?
- 曾經嘲笑回購
- 已覆蓋的情況下「拋出異常」
- 問題是所有方案中如何進行單元測試順利即用戶; S makeModel與倉庫相匹配; S makeModel
任何設計建議,使此可測試是最受歡迎 在此先感謝。
感謝alexn - 一直在使用莫q並發現它非常有幫助 –