Я использовал шаблон в течение некоторого времени.И мне интересно, правильно ли я поступаю.У меня есть класс контроллера, который прослушивает события и выполняет закрытый метод при возникновении события.Это выглядит примерно так:
public class MyController
{
public MyController(IMyEventRaiser eventRaisingObject)
{
eventRaisingObject.MyEvent += HandleEvent;
}
private void HandleEvent(object sender, EventArgs args)
{
// SOME STUFF I WANT TO TEST!!
}
}
public class EventRaisingClass : IMyEventRaiser
{
public event EventHandler<EventArgs> MyEvent;
}
Единственный способ проверить код в MyController.HandleEvent - создать заглушку: IMyEventRaiser, которая вызывает код.
Я не уверен, что этот дизайн правильный.С одной стороны, я хочу сохранить метод HandleEvent закрытым, чтобы проиллюстрировать, что только событие может вызвать его.С другой стороны, этот закрытый метод содержит ключевую бизнес-логику, поэтому я чувствую, что он должен быть публичным или, по крайней мере, внутренним, что также облегчит юнит-тестирование.
Что ты много думаешь?
С уважением, Мортен