Я в конечном итоге реорганизовал свой код, чтобы исключить закрытый конструктор, например:
private void HandleSerialDataReceived(object sender, SerialDataReceivedEventArgs e)
{
SerialDataReceived(sender, e.EventType);
}
/// <summary>
/// This method executes in response to the <see cref="ISerialPort.DataReceived"/> event
/// via <see cref="HandleSerialDataReceived"/> and is called on its own worker thread.
/// </summary>
internal void SerialDataReceived(object sender, SerialData eventType)
{
...
}
Так что теперь я могу выполнить свое модульное тестирование на SerialDataReceived
и передать ему параметр SerialData
напрямую.
Тем не менее, я думаю, что предпочитаю решение Александра, потому что оно не требует от меня перефакторинга моего производственного кода.