現在、Eclipse の JUnit で Android アプリケーションのテストを行っていますが、問題に直面しています。abc パッケージに 2 つのクラス ファイルがあります。test1.java と com.test.java。test1.java は、テキスト ファイルを読み取り、テキスト ファイル内のテスト ケースを取得して配列に格納する役割を果たします。一方、com.test.java は、Android アプリケーションで自動化されたブラック ボックス テストを実行するファイルです。私の問題は、テストのために test1.java からメソッド テスト ファイルに値を渡すことができないことです。
以下は私のコードです
test1.java
package com.calculator.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Random;
import android.util.Log;
public class test1 {
private static int j;
static String[] jeff = new String[] { "2", "2", "4"};
public static void main(String[] args) {
}
public static String[] data() {
String[] lines = new String[0];
String path = "C:/Users/Sony/workspace/calculator1.Test/testing1.txt";
BufferedReader br = null;
try {
File file = new File(path);
br = new BufferedReader(new InputStreamReader(new FileInputStream(
file)));
String line;
while ((line = br.readLine()) != null) {
lines = add(line, lines);
}
br.close();
} catch (IOException e) {
Log.d("error msg", e.getMessage());
}
return lines;
}
public String[] getDataFromAsset()
{
return null;
}
private static String[] add(String s, String[] array) {
int len = array.length;
String[] temp = new String[len + 1];
System.arraycopy(array, 0, temp, 0, len);
temp[len] = s;
return temp;
}
public static String print(String[] data) {
Random random = new Random();
int rand = random.nextInt(data.length);
// System.out.println("Random no = " + rand + " -> " + data[rand]);
String bbb = tes1t(data[rand]);
//return "1 2 3"
return bbb;
}
public static String tes1t(String data) {
String law = data;
String[] jeff = data.split("\\s");
for (int j = 0; j < jeff.length; j++) {
System.out.print(jeff[j]);
if (j < jeff.length - 1)
System.out.print(", ");
else
System.out.println();
}
String aaa = getdata1(jeff);
//System.out.println(jeff[1]);
return aaa;
}
public static String getdata1(String[] x) {
String ss = x[1];
//System.out.println(ss);
return ss;
}
}
com.test.java
package com.calculator.test;
import java.util.ArrayList;
import org.junit.Rule;
import org.junit.Test;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;
import com.calculator.Main;
import com.calculator.R;
import com.jayway.android.robotium.solo.Solo;
public class calculatorMainTests extends ActivityInstrumentationTestCase2<Main> {
private Solo solo;
public calculatorMainTests() {
super(Main.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(), getActivity());
}
public void testDisplayBlackBox() {
Log.d("Test 1", "started");
//String[] ddd = test1.data();
//String ccc = test1.print(ddd);
solo.enterText(0, ccc);
// Enter 20 in first editfield
solo.enterText(1, "2");
// Click on Multiply button
solo.clickOnButton("Multiply");
// Verify that resultant of 10 x 20
assertTrue(solo.searchText("4"));
}
public void testDisplayBlackBox1() {
Log.d("Test 2", "started");
// Enter 10 in first editfield
solo.enterText(0, "1");
// Enter 20 in first editfield
solo.enterText(1, "20");
// Click on Multiply button
solo.clickOnButton("Multiply");
// Verify that resultant of 10 x 20
assertTrue(solo.searchText("20"));
}
@Override
protected void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}