RobotiumTech / robotium

Android UI Testing
http://www.robotium.org
Apache License 2.0
2.86k stars 785 forks source link

Test DataDriven with Robotium #250

Closed renas closed 9 years ago

renas commented 9 years ago

From duynguye...@gmail.com on October 05, 2011 01:08:46

Hi all!

I'm trying test datadriven on Robotium, but when i build, it have some error and i can't fix them:

This is my code:

package com.hlt.stocktrade.test;

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Locale;

import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.WorkbookSettings; import jxl.read.biff.BiffException; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook;

import com.hlt.stocktrade.myaccount.*; import com.jayway.android.robotium.solo.Solo;

import android.content.Context; import android.test.ActivityInstrumentationTestCase2;

public class TestDatadriven extends ActivityInstrumentationTestCase2 { private static final String TARGET_PACKAGE_ID = "com.hlt.stocktrade.myaccount"; private static final String LAUNCHER_ACTIVITY_FULLCLASSNAME = "com.hlt.stocktrade.myaccount.CashTransferActivity"; private static Class<?> launcherActivityClass; Workbook wb; WritableWorkbook copy; WritableSheet sheet; Boolean FuntionResult = false; Cell rowData[] = null; private String[] FirstValue; private String[] SecondValue; private String[] ThirdValue; private String[] FourthValue; private String[] FifthValue; private String[] SixthValue; int rowCount = '0'; WorkbookSettings ws = null; Workbook workbook = null; Sheet s = null; String[] TestResults; static { try { launcherActivityClass = Class .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); } catch (ClassNotFoundException e) { throw new RuntimeException("Class not found" + e); } }

   public TestDatadriven() throws ClassNotFoundException {
           super(TARGET_PACKAGE_ID,
                           (Class<CashTransferActivity_>) launcherActivityClass);
   }

   private Solo solo;

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

   public void CanOpenSettings() {
           solo.pressMenuItem(0);
   }

   public void testblackbox() {
           getTestDataFile();
           TestResults = new String[rowCount];

           System.out.println("solo : " + solo);
           for (int i = 1; i \< rowCount; i++) {
                   //Enter value in First editfield
                   solo.enterText(0, FirstValue[i].toString());
                   //Enter value in Second editfield
                   solo.enterText(1, SecondValue[i].toString());
                   //Enter value in Third editfield
                   solo.enterText(2, ThirdValue[i].toString());
                   //Enter value in Fourth editfield
                   solo.enterText(3, FourthValue[i].toString());
                   //Enter value in Fifth editfield
                   solo.enterText(4, FifthValue[i].toString());
                   //Enter value in Sixth editfield
                   solo.enterText(5, SixthValue[i].toString());
                   solo.clickOnText("Cash Transfer");
                   solo.clickOnText("OK");

                   TestResults[i] = "Pass";

                   //String First = String.valueOf(FirstValue[i].toString());
                   //String Second = String.valueOf(SecondValue[i].toString());
                   //String Third = String.valueOf(ThirdValue[i].toString());
                   //String Fourth = String.valueOf(FourthValue[i].toString());
                   //String Fifth = String.valueOf(FifthValue[i].toString());
                   //String Sixth = String.valueOf(SixthValue[i].toString());

           }
           writeResults(TestResults);
   }

   public void readTestData(InputStream fileInputStream) throws

Exception { ws = null; workbook = null; s = null;

           int columnCount = '0';
           int totalSheet = 0;
           String firstSheet = "TestCases";
           String secondSheet = "TestScenarios";

           try {
                   ws = new WorkbookSettings();
                   ws.setLocale(new Locale("en", "EN"));
                   workbook = Workbook.getWorkbook(fileInputStream, ws);

                   totalSheet = workbook.getNumberOfSheets();
                   if (totalSheet > 0) {

                           if (!workbook.getSheet(0).getName().equals(firstSheet))
                           {
                                   System.out.println("contents are not fine");
                           }
                           if (!workbook.getSheet(1).getName().equals(secondSheet))
                           {
                                   System.out.println ("contents are not fine");
                           }
                   }

                   else {
                           System.out.println("There is not any sheet available.");
                   }

                   s = workbook.getSheet(0);

                   rowCount = s.getRows();
                   FirstValue = new String[rowCount]; // First Value array size
                   SecondValue = new String[rowCount];// Second Value array size
                   ThirdValue = new String[rowCount]; // Third Value array size
                   FourthValue = new String[rowCount];// Fourth Value array size
                   FifthValue = new String[rowCount]; // Fifth Value array size
                   SixthValue = new String[rowCount];// Sixth Value array size

                   columnCount = s.getColumns();
                   rowData = s.getRow(0);

                   if (rowData[0].getContents().length() != 0) {
                           for (int i = 1; i \< rowCount; i++) {

                                   rowData = s.getRow(i);

                                   if (rowData[8].getContents().equals("Yes")) {
                                           System.out.println("Executed: "
                                                           + rowData[1].getContents());
                                           FirstValue[i] = rowData[2].getContents().toString();
                                           SecondValue[i] = rowData[3].getContents().toString();
                                           ThirdValue[i] = rowData[4].getContents().toString();
                                       ...

Attachment: TestDatadriven.java

Original issue: http://code.google.com/p/robotium/issues/detail?id=171

renas commented 9 years ago

From renasr...@gmail.com on October 05, 2011 09:51:02

Status: Invalid