2012-04-23 5 views
0

이 같은 방법이 있습니다테스트 객체는

public void ABC(ViewModeL model) 
    { 
     var dataTable = new DataTable(); 
     dataTable.Columns.Add("column1", typeof(int)); 
     dataTable.Columns.Add("column2", typeof(int));      
     var dr = dataTable.NewRow(); 
     dr["column1"] = 2; 
     dr["column2"] = 0; 
    } 

내가 DataTable 개체에 주장하고 싶지만이 내부에서 생성되기 때문에 내가 이렇게하는 방법을 알아낼 수 없습니다입니다 메서드에 의해 반환되며이 메서드는 반환하지 않습니다. 그것은 코뿔소 모의를 사용하여 그것을 테스트 할 수 있습니까 ??

+0

DataTable이 외부와 연결되어 있지 않은 이유는 무엇입니까? –

+0

내가 물건을 추가하고 있기 때문에 그들이 올바른 방식으로 추가되었는지 알고 싶습니다. –

+1

이것은 단위 테스트의 요점이 아닙니다. 단위 테스트는 ** function/object가하는 일 ** **은 어떻게하는지 ** 테스트합니다. – MattDavey

답변

0

아니요, 이것은 실제 공간이 ABC() 메소드 범위 인 로컬 변수입니다. 따라서 thsi는 C# 관점에서 가능하지 않으며 단위 테스트 관점에서 잘못되어도 구현 세부 사항에 의지해서는 안됩니다.

아마도 메서드 실행 후 dataTable 변수가 죽을 것이므로 전체 메서드 본문을 제공하지 않았으므로 왜 검사해야합니까?

+0

내 메서드 내에서 dataTable 개체를 전달하는 다른 메서드를 호출하고 있습니다. repository.InsertDataTable (dataTable); –

+0

이 코드를 표시하십시오 – sll

+0

안녕하세요 저는 코드를 리팩토링하여 DataTable 객체를 반환하고 부분 모의를 생성하여이를 무의식적으로 테스트하는 보호 된 메소드를 만들었습니다. 어쨌든 고맙습니다. :-) –