làm cách nào để tôi có thể kiểm tra các lớp trừu tượng và các phương thức được bảo vệ bên trong chúng? Tôi biết một số bạn sẽ đề nghị rằng tôi không nên kiểm tra lớp trừu tượng, nhưng thay vào đó hãy kiểm tra các lớp có nguồn gốc từ nó. Thing là, tôi không muốn làm điều đó. Tôi muốn kiểm tra nghiêm ngặt lớp trừu tượng. Đây là lớp mẫu:các lớp trừu tượng thử nghiệm đơn vị và các phương pháp được bảo vệ bên trong chúng
public interface IF_SystemMessageHandler
{
...
}
public interface IF_SystemMessageSender
{
...
}
public abstract class Component : IF_SystemMessageSender
{
private eVtCompId mComponentId;
private eLayer mLayerId;
private IF_SystemMessageHandler mLogger;
protected Component(eVtCompId inComponentId, eLayer inLayerId, IF_SystemMessageHandler inMessageHandler)
{
mLayerId = inLayerId;
mComponentId = inComponentId;
mLogger = inMessageHandler;
}
protected void SendSystemMessage(ref eSystemMsgLevel inSystemMsgLevel, ref string inSysMsg)
{
mLogger.SendSystemMessage(...);
}
protected void SendSystemMessage(ref eSystemMsgLevel inSystemMsgLevel, ref eTextId inSysMsgID)
{
mLogger.SendSystemMessage(...);
}
public void SetMessageHandler(ref IF_SystemMessageHandler InSystemMessageHandler)
{
mLogger = InSystemMessageHandler;
}
}
Tôi đang viết một bài kiểm tra đơn vị cho nó. Tôi biết rằng một trong những điều tôi có thể làm là sử dụng một khung kiểm thử đơn vị (tôi có Moq), nhưng tôi không có ý tưởng về cách sử dụng nó cho trường hợp cụ thể này.
Kudo cho mã. Câu trả lời này tốt hơn nhiều so với câu trả lời của @ulises –