2014-02-17 2 views
2

코드를 작성하려고하는데 Excel의 내용을 읽고 Excel의 값을 사용하고 전달해야합니다. 내 Robotium 테스트 케이스에. 여기 Excel의 내용을 읽고 Robotium 테스트 케이스의 값을 사용하려면

내 코드입니다 :

ReadExcel 클래스 : //는 3 열 2 행의 값과도 4 열 및 2 열

공용 클래스 ReadExcel을 {읽고

private String user,pass; 
public void read() throws BiffException, IOException 
{ 
    Workbook wrk1 = Workbook.getWorkbook(new File("D:/Robo/Book1.xls")); 
    Sheet sheet1 = wrk1.getSheet(0); 

    Cell username = sheet1.getCell(2,1); // the username from the excel 
    Cell password = sheet1.getCell(3,1); // the password from the excel 

    setUser(username.getContents()); 
    setPass(password.getContents()); 
} 
public void setUser(String user) { 
    this.user = user; 
} 
public String getUser() { 
    return user; 
} 
public void setPass(String pass) { 
    this.pass = pass; 
} 
public String getPass() { 
    return pass; 
} 

}

다음은 Robotium을 사용하는 테스트 스크립트입니다.

import android.test.ActivityInstrumentationTestCase2; import com.ifs.banking.fiid5015.test.ReadExcel;

import com.robotium.solo.Solo;

@SuppressWarnings ("rawtypes") 공용 클래스가 FSBTest가 ActivityInstrumentationTestCase2를 확장 {

private Solo solo; 
private String user,pass; 
private static final String TARGET_PACKAGE_ID = "com.ifs.banking.fiid5015"; 
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.banking.activities.LoginActivity"; 
private static Class<?> launcherActivityClass; 
static { 
    try { 
     launcherActivityClass = Class 
     .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 
    } catch (ClassNotFoundException e) { 

     throw new RuntimeException(e); 
    } 
} 

@SuppressWarnings({ "deprecation", "unchecked" }) 
public FSBTest() throws ClassNotFoundException { 
    super(TARGET_PACKAGE_ID, launcherActivityClass); 
} 

@Override 
protected void setUp() throws Exception { 
    solo = new Solo(getInstrumentation(), getActivity()); 
} 
public void testApp() { 

    ReadExcel rd= new ReadExcel(); // creating the object for Read excel class 
      rd.read(); 
    user = rd.getUser(); //passing the username 
    pass = rd.getPass(); //passing the password 

    // Login to the application 
    solo.enterText(0,user); // Enter user name 
    solo.sleep(1000); 
    solo.enterText(1, "dsf"); 
    solo.sleep(1000); 
    solo.clickOnButton(1); // Try Login! (bad login) 
    solo.sleep(10000); 
    solo.clickOnButton("OK"); 
    solo.sleep(5000); 

    solo.enterText(1,pass); // Enter Password (authentic password) 
    solo.sleep(5000); 
    solo.clickOnButton(1); // Try Login! (Valid login) 
    solo.sleep(10000); 

    // MFA 
    solo.clickOnButton(0); // choose Text Me (xxx-xxx-3576) 
    solo.sleep(20000); 

    solo.clickOnButton(0); 
    solo.sleep(20000); 
} 

@Override 
public void tearDown() throws Exception { 
    try { 
     solo.finalize(); 
    } catch (Throwable e) { 
     e.printStackTrace(); 
    } 
    getActivity().finish(); 
    super.tearDown(); 
} 

은} 난 내 프로젝트를 실행하려고하면, 나는 java.lang.FileNotFoundExceptionand가 발생

이 보인다 내가 엑셀에서 값을 가져올 수 없습니다. 기본적으로 나는 여기 붙어있다. 친절하게 도와주세요!

감사합니다.

답변

2

파일을 장치에 넣어야합니다. 예를 들어 sdcard를 사용할 수 있습니다.

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
String fileName = "Book1.xls"; 

File f = new File(String.format("%s%s%s", baseDir, File.separator, fileName)); 
+0

글쎄, 내 실제 장치에서 응용 프로그램을 자동화하려고합니다. 그것에 대해 어떻게 가야합니까? 파일을 내 실제 장치에도 추가해야합니까? 따뜻하게 감사드립니다! – veekay

+0

예, 기기가 호스트 컴퓨터에 액세스 할 수 없습니다. – maszter

+0

감사합니다. 그것은 절대적으로 fab을 움직이게했다! 건배! – veekay