Mor*_*ten 2 c# tdd nunit unit-testing
我已经使用了一段时间的模式.而且我想知道我做的是否正确.我有一个侦听事件的控制器类,并在引发事件时执行私有方法.它有点像这样:
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;
}
Run Code Online (Sandbox Code Playgroud)
在MyController.HandleEvent中测试代码的唯一方法是创建一个存根:IMyEventRaiser,它会引发代码.
我不确定这种设计是否合适.一方面,我想将HandleEvent方法保持为私有,以便说明只有一个事件可以触发它.另一方面,私有方法包含关键业务逻辑,因此我觉得它应该是公共的或至少是内部的,这也使得单元测试更容易.
你觉得怎么样?
此致,莫滕
| 归档时间: |
|
| 查看次数: |
2779 次 |
| 最近记录: |