Похоже, вы хотите проводить интеграционное тестирование, а не модульное тестирование?
Если вы имеете в виду модульное тестирование, вы можете:
- Создание оболочки вокруг последовательного порта
- Дайте оболочке интерфейс, возможно, IPort
- Передайте это в класс, который требует SerialPort
- Макет SerialPost, который передается в
internal interface IPort
{
void Connect();
//Other members
}
internal class SerialPort : IPort
{
public void Connect()
{
//Implementation
}
}
public class DataRetriever
{
private IPort _port;
public DataRetriever(IPort port)
{
_port = port;
}
public void ReadData()
{
_port.Connect();
}
}
Теперь вы можете протестировать класс Data Retriever. К сожалению, когда вы приближаетесь к фреймворку (например, к оболочке SerialPort), вы не можете выполнить его модульное тестирование. Вам нужно будет оставить это для интеграционных тестов.