2012-07-26 5 views
1

저는 C#과 프로그래밍에 익숙하지 않습니다. 일부 단위 테스트를 작성해야합니다. 이 수업에 대해 글을 쓰고 싶습니다.C# unit testing visual studio 2010

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using teamcanada.Models; 
using System.Configuration; 
using teamcanada.ingestion; 

/* This class writes the parsed CSV data into the database */ 

namespace teamcanada.dal 
{ 
    public class csvParseDAL 
    { 
     protected torontoDB db = new torontoDB(); 

     /* if the database is empty, then do not continue with the CSV parsing */ 

     public csvParseDAL() 
     { 
      if ((db.ElectionResults.ToList().Count() == 0) && (db.ElectionContributions.ToList().Count() == 0)) 
      { 
       insertcsv(); 
      } 
     } 

     /* Start CSV parsing */ 

     public void insertcsv() 
     { 
      List<Results> results = null; 
      List<Contributions> contributions = null; 

      LoadCSV import = new LoadCSV(); 

      results = import.loadResults(); 

      foreach (Results r in results) 
      { 
       db.ElectionResults.Add(r); 
      } 

      contributions = import.loadContributions(); 

      foreach (Contributions r in contributions) 
      { 

       db.ElectionContributions.Add(r); 
      } 
      db.SaveChanges(); 
     } 
    } 
} 

도움을 주시면 감사하겠습니다.

D는

+0

단위 테스트를 거치지 않은 상태에서 통합 테스트 (엔티티 프레임 워크가 올바르게 작동한다고 가정 할 수 있음)가 발생했습니다. – Alex

답변

2

일반적으로 싶은 것은 예상과 실제 값을 비교 Assert 클래스를 사용하는 것입니다. 실제 값은 대개 메소드의 반환 값입니다. 귀하의 경우에는 반환 값 import.loadResults();import.loadContributions();을 테스트하여 예상 한 값을 반환하는지 확인하는 것이 좋습니다.

나는 마이크로 소프트가 이미 수행 한 유닛 테스트에 필요한 것이 아닌 EF를 사용하는 것을 본다. 필요한 경우, 테스트가 데이터베이스에 액세스 할 수있는 통합 테스트를 사용하고 적절한 값이 삽입되었는지 여부를 점검 할 수 있습니다.

Visual Studio에서 테스트 프로젝트를 만들고 좀 더 구체적으로 조언하기는 어렵지만 좀 더 구체적인 질문을 시도해보십시오. 이 presentation을 사용하여 단위 테스트의 기본 사항을 이해할 수 있습니다.

+0

빠른 응답 감사합니다. – RoRNovice

+0

질문에 대한 답변이 있으면 문제를 표시 할 수 있습니다. 대답으로 ;-) –