2017-09-06 18 views
0

WindowsフォームプロジェクトでMVPパターンを使用していて、実際にフォームから分離してはいけないことを読んでいるため、だから今私はフォームをテストするために来ている私はこのようなユニットテストメソッドをどのようにすることができますか分からない。私は嘲笑について読んだことがありますが、コントロールを作成して実装する方法がわかりません。Windowsフォームで動的に作成されたコントロールをユニットテストする

internal void createExamLabels(List<string> examList) 
    { 
     labelList = new List<Label>(); 

     foreach (string exam in examList) 
     { 
      LinkLabel label = new LinkLabel(); 
      label.Text = exam; 
      label.Location = labelPoint; 
      label.Click += examlabelLinkClicked; 
      label.AutoSize = true; 
      this.Controls.Add(label); 
      labelList.Add(label); 
      labelPoint.Y = labelPoint.Y + 30; 

     } 
    } 

またはこの

private void Form_Paint(object sender, PaintEventArgs e) 
    { 
     int count = 1; 
     while (count == 1) 
     { 
      e.Graphics.DrawImage(image, rec); 
      count++; 
     } 


      DrawCircle(e.Graphics, point.X, point.Y); 

    } 

    private void DrawCircle(Graphics g, float x, float y) 
    { 

     using (Brush semiTransBrush = new SolidBrush(Color.Coral)) 
     { 
      using (Pen pen = new Pen(Color.Aquamarine, 2)) 
      { 
       g.DrawEllipse(pen, x, y, 50, 50); 
       g.FillEllipse(semiTransBrush, x, y, 50, 50); 

      } 
     } 
    } 

答えて

1

ないでください。

一般的に、単体テストは、ファイルシステム、データベース、またはUIなどの「外部」システムに触れてはいけません。

私はいくつかのWPFコントロールに対して「単体テスト」を持つエンタープライズアプリケーションを開発しました。これらのテストは、ユニットテストスイート全体で最も不安定で、実行時間が長く、トラブルシューティングが最も困難でした。

アプリケーションに適した部分にユニットテストの作業を集中させます。あなたが引用したMVPパターンについては、モデルと発表者に焦点を合わせます。アドホックテストのためのUIテストのままにしておきます。

関連する問題