Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jUnit中测试Android和simplecalc_Android_Junit - Fatal编程技术网

在jUnit中测试Android和simplecalc

在jUnit中测试Android和simplecalc,android,junit,Android,Junit,我对jUnit中的测试有问题。 这是我的测试课: public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> { Button button1, button2, button3, button4, button5, button6, button7, button8, button9, buttonResult, buttonPlus; Ed

我对jUnit中的测试有问题。 这是我的测试课:

public class MainActivityTest extends
        ActivityInstrumentationTestCase2<MainActivity> {
    Button button1, button2, button3, button4, button5, button6, button7, button8, button9, buttonResult, buttonPlus;
    EditText resultConsole;
    private static final String FIRSTVALUE = "12";
    private static final String SECONDVALUE = "21";
    private static final String RESULT = "33.0";
    MainActivity mainActivity;

    public MainActivityTest() {
        super("com.example.simpletest", MainActivity.class);
    }

    public void setUp() throws Exception {
        super.setUp();
            setActivityInitialTouchMode(false);
            mainActivity = getActivity();
            button1 = (Button) mainActivity.findViewById(R.id.button1);
            button2 = (Button) mainActivity.findViewById(R.id.button2);
            button3 = (Button) mainActivity.findViewById(R.id.button3);
            button4 = (Button) mainActivity.findViewById(R.id.button4);
            button5 = (Button) mainActivity.findViewById(R.id.button5);
            button6 = (Button) mainActivity.findViewById(R.id.button6);
            button7 = (Button) mainActivity.findViewById(R.id.button7);
            button8 = (Button) mainActivity.findViewById(R.id.button8);
            button9 = (Button) mainActivity.findViewById(R.id.button9);
            buttonResult = (Button) mainActivity.findViewById(R.id.buttonResult);
            buttonPlus = (Button) mainActivity.findViewById(R.id.buttonPlus);
            resultConsole = (EditText) mainActivity.findViewById(R.id.editText1);

    }
    String result;
    public void testPlus(){
            mainActivity.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    assertTrue(button1.performClick());
                    assertTrue(button2.performClick());
                    assertTrue(buttonPlus.performClick());
                    assertTrue(button2.performClick());
                    assertTrue(button1.performClick());
                    assertTrue(buttonResult.performClick());

                    result =  resultConsole.getText().toString();
                    assertTrue(!result.equals(0));
                    assertEquals(result, RESULT);


                }
            });


    }

}
这是一个简单的计算器。我想测试结果,并等于结果。要检查结果,我要单击按钮并检查editText中的文本。但是有点不对劲,因为即使我将
RESULT
设置为
22
上,我在
testPlus()
中也没有得到错误。来自该方法的单击按钮后的结果应在33.0的编辑视图中设置文本,因此来自该方法的单击按钮后的文本和结果不同,所以测试不应通过。怎么了?

这是一个解决方案:

public void testPlus(){
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                assertTrue(button1.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(button2.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(buttonPlus.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(button2.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(button1.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(buttonResult.performClick());



            }
        });
        getInstrumentation().waitForIdleSync();
        String result =  resultConsole.getText().toString();
        assertTrue(!result.equals(0));

        assertEquals(RESULT, result);
}
public void testPlus(){
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                assertTrue(button1.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(button2.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(buttonPlus.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(button2.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(button1.performClick());


            }
        });
        getInstrumentation().waitForIdleSync();
        mainActivity.runOnUiThread(new Runnable() {

            @Override
            public void run() {

                assertTrue(buttonResult.performClick());



            }
        });
        getInstrumentation().waitForIdleSync();
        String result =  resultConsole.getText().toString();
        assertTrue(!result.equals(0));

        assertEquals(RESULT, result);
}