Tôi đang viết một số bài kiểm tra đơn vị cho lớp Mô hình Xem của tôi. Hàm khởi tạo của lớp này được tiêm một ILoggerService. Giao diện này định nghĩa 1 phương thức GetLog trả về một ILogger. Một cái gì đó như dưới đây nơi này đại diện cho một lớp mà thực hiện ILoggable: -Làm thế nào để Giả lập ILogger/ILoggerService bằng cách sử dụng Moq
protected ViewModelBase(ILoggerService loggerService)
{
Logger = loggerService.GetLog(this);
}
Tôi đang cố gắng để đơn vị kiểm tra phương pháp CreateNewOrder của tôi trông giống như dưới đây:
private void CreateNewOrder(INewOrderViewModel newOrderViewModel)
{
Logger.Log("Sending Create New Order Message", LogCategory.Info);
var createNewOrderMessage = new OrderMessage(newOrderViewModel);
_eventAggregator.GetEvent<CreateOrderEvent>().Publish(createNewOrderMessage);
}
Làm thế nào tôi sẽ đi về Mocking ILoggerService sao cho một Logger hợp lệ được trả về? Tại thời điểm thử nghiệm đơn vị của tôi ném một NullReferenceExeception.
Tôi đang sử dụng Moq để chế nhạo.
Tôi tưởng tượng tôi cần phải làm một cái gì đó dọc theo dòng của
var loggerService = new Mock<ILoggerService>();
loggerService.Setup(svc => svc.GetLog(??))
Nhưng tôi không thể xem như thế nào mà không làm lớp thử nghiệm của tôi thực hiện ILoggable.
Xin cảm ơn trước.
Rực rỡ. Điều đó làm việc một điều trị. Cảm ơn rất nhiều – user630190
Để tham khảo, tôi sử dụng một cái gì đó như: 'var loggerMoq = Mock.Of>();' –
Nordes