2011-01-03 7 views

답변

2
[TestFixture] 
public class SampleFixture 
{ 
    [Column("123", "456")] 
    private string parameter; // Causes the fixture to be run once for each value. 

    public IEnumerable<string> GetData() 
    { 
     yield return "abc" + parameter; 
     yield return "def" + parameter; 
     yield return "ghi" + parameter; 
    } 

    [Test, Factory("GetData")] 
    public void MyDataDrivenTest(string text) 
    { 
     TestLog.WriteLine(text); 
    } 
} 

당신은 Gallio wiki에서 data-driven tests 대한 기사를 읽고 할 수 있습니다. [Row], [Column] 및 MbUnit을 사용하여 데이터 기반 테스트를 만드는 데 유용한 다른 기능을 사용하는 방법에 대한 예제가 많이 있습니다.

업데이트 : 위의 예제에서 필자는 출고시의 데이터를 외부 매개 변수와 연결했습니다. 따라서 테스트는 6 번 실행됩니다 ("abc123", "def123", "ghi123", "abc456", "def456"및 "ghi456"). 그러나 다른 방법으로 매개 변수를 사용할 수 있습니다. GetData의 전체 동작 수정과 같은

+0

감사합니다. 하지만 내 질문에 어떻게 귀하의 예제에서 GetData 메서드에 문자열을 테스트 데이터로 반환할지 결정할 수 있습니다 전달하는 것입니다. – tgiphil

+0

나는 정확하게 이해할 수 없다. GetData는 원하는대로 반환 할 수 있으며 반드시 수익률 반환 목록은 아닙니다. 예를 들어 저장소, 사용자 지정 생성기 또는 모든 종류의 데이터 팩터와 같은 외부 데이터 소스에서 데이터를 가져올 수 있습니다. 어쩌면 당신은 당신이 달성하기를 원하는 것을 제공 할 수 있습니다. 문자열 매개 변수의 출처는 어디입니까? 사용자 입력, 데이터베이스, 설정 파일? –

+0

문자열을 받아들이고 단위 테스트를 위해 IEnumerable 을 반환하는 메서드를 호출하려고합니다. 이 메소드는 데이터를 생성하기 위해 문자열을 전달해야합니다. 기본적으로 주어진 문자열을 기반으로 전체 순열을 생성합니다. 그래서 내가 찾고있는 것은 다음과 같은 속성입니다 : [Test, Factory ("GetData"), "123"] 메소드 IEnumerable 을 GetData (문자열 키)에 "123"키로 호출합니다. – tgiphil

관련 문제