Muốn Unit Test một phương pháp trong các lớp sauUnit Test một phương pháp mà trả về một khoảng trống
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()
}
}
Lưu ý:
- Tên Phương Pháp = AuthoriseDeviceProfile trả về void
- Phương pháp kiểm tra userSentMakeModel chống lại cái được lưu trữ trong kết hợp db
- Nếu nó khớp - nó chỉ trả về (tức là không thay đổi trạng thái nào)
Chúng tôi sẽ kiểm tra phương pháp này bằng cách nào?
- đã chế giễu các Repo
- đã bao phủ kịch bản của "throws Exception"
- Câu hỏi là làm thế nào để đơn vị kiểm tra kịch bản của mọi việc đều sử dụng CŨNG tức; s makeModel phù hợp với kho; s makeModel
Bất kỳ đề xuất thiết kế nào để làm cho bài kiểm tra này được chào đón nhiều nhất Cảm ơn bạn trước.
Cảm ơn alexn - đã được sử dụng Mo q và tìm thấy nó rất hữu ích –