相关疑难解决方法(0)

单元测试自定义OnRender-Method

我有一个自定义控件MyControl,它继承自 - Canvas并且在OnRender-Method中有自己的逻辑.它应该在绘图上下文中绘制一些矩形和文本.

public class MyControl : Canvas
{
    protected override void OnRender(DrawingContext dc)
    {
        // do something like dc.DrawRectangle(...);
        // do something like dc.DrawText(...);
    }
}
Run Code Online (Sandbox Code Playgroud)

由于我必须开发测试驱动,我想单元测试OnRender-Method.我尝试了几种不起作用的解决方案.所有这些都需要一个继承的类用于测试目的,我将调用它TestingMyControlOnRender以下面的形式公开-Method:

public class TestingMyControl : MyControl
{
    public void Render(DrawingContext dc)
    {
        base.OnRender(dc);
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 既然DrawingContext是一个抽象类,我想我可以实现一个实现的测试类DrawingContext.然后我可以收集它应该绘制的所有矩形和文本,并对此进行断言.问题:DrawingContext有一个内部构造函数,所以我不能继承它.

  2. 既然DrawingContext是一个抽象类,我想我可以创建它的模拟. 问题:它有一些内部抽象方法,因此Rhino-Mocks无法创建代理,因为它无法实现这些内部抽象方法.

所以我有问题,我无法测试OnRender-Method,因为我无法创建一个实例DrawingContext......

c# wpf

3
推荐指数
1
解决办法
282
查看次数

标签 统计

c# ×1

wpf ×1