2016-07-13 4 views
0

내 프로젝트에서 사용자 정의 클래스의 객체 배열을 반환하는 testNG dataprovider 메소드를 만들려고합니다. 이 배열은 1 차원 배열이며이 dataprovider 메서드에서 2 차원 배열을 반환하지 않습니다. Dataprovider가 2D 배열 (항상 2D 이상)을 반환해야한다고 제안하십시오. 그렇다면 다음 줄에 도움이 필요합니다.TestNG에서 1D Dataprovider 메서드를 만드는 방법은 무엇입니까?

return new Object [] {} {사용자 {0}, {사용자 [1]}, {사용자 [2]}, {사용자 [3]} }

미래에이 배열을 확장하면 4 개 이상의 요소가 있으므로이 전체 기능을 편집해야하기 때문에이 코드 줄을 더 잘 작성할 수 있습니까? 목록을 사용할 수 없습니까? 다음은

내가 현재 사용하고있는 코드입니다 :

@DataProvider(name = "credentialsProvider", parallel=false) 
public static Object[][] credentialsProvider() throws Exception { 
    User[] user=new User[4]; 
    user[0]=new User(UserTypes.AGENCY_MANAGER,1); 
    user[1]=new User(UserTypes.AGENT,1); 
    user[2]=new User(UserTypes.AGENCY_MODERATOR,1); 
    user[3]=new User(UserTypes.EW_ECS_AGENCY_MANAGER,1); 
    return new Object[][]{{user[0]},{user[1]},{user[2]},{user[3]}}; 
    }; 
} 
+0

내가 유 이런 식으로 뭔가를해야 할 것입니다 매우 쉽게 사용할 수 있도록 래퍼가? @DataProvider (이름 = "카테고리") \t 공공 객체 [] [] testCategoryRead()는 예외 { \t \t 반환 제공자가 발생합니다. testDataBuilder() \t \t \t \t .withAttribute ("사이트"siteUS) .capture() \t \t \t \t .build(); \t} –

답변

0

는 DataProvider에 2D 될하는 이유가있다 - 오늘은하자 통과 한 경우, 당신은 데이터로 전달하려는 하나의 문자열을 User 객체와 UserDetails 객체를 테스트 케이스에 전달하면 두 가지를 모두 전달할 수있는 방법이 필요하므로 단위 배열은 기본적으로 단일 테스트에 전달해야하며 2d는 이러한 여러 데이터 목록을위한 것입니다.

사용자 배열을 루프하여 한 줄에 색인을 표시하는 대신 사용자 개체를 추가하지 않는 이유는 무엇입니까? 무언가가 추가되면 사용자 객체를 정의하기 만하면 for 루프가 전체 길이로 반복됩니다.