我需要为OnStartUp
方法编写单元测试方法。
由于它是protected
方法,我该如何访问和测试它?
protected override void OnStartUp(StartupEventArgs s)
{
}
答案 0 :(得分:0)
首先,任何告诉您you should only test public methods
正在使用单元测试错误的人。
您需要自己考虑单元测试为您的代码库提供什么。我坚信,单元测试会创建一个行为测试工具,确保输入文本编辑器的任何人保持完全相同,除非是经过业务批准的更改。这基本上意味着你需要测试所有的东西。
其次,对于非protected
类中的sealed
方法,您可以使用另一个仅测试类继承该类,并在其上公开一个公共调用程序。
像这样:
public class TestWrapper : BaseClass
public void OnStartupInvoker(StartupEventArgs s)
{
OnStartUp(s);
}
And then in test
var target = new TestWrapper();
target.OnStartupInvoker(null);
// it has been called!