0

嗨,我是 android 的 junit 测试新手,所以我的问题是我有 6 个EditText字段,其中一个Button通过按下Button它会检查天气字段的字段长度EditText是否为零,如果它们为零,那么它将显示一个Toast,否则它将转到另一个Activity所以这是我的代码

Button.OnClickListener okListener = new Button.OnClickListener() {
        public void onClick(View arg0) {
            if(text1.getText().toString().length()==0 || text2.getText().toString().length()==0||text3.getText().toString().length()==0||   text4.getText().toString().length()==0||text5.getText().toString().length()==0||    text6.getText().toString().length()==0||txt7.getText().toString().length()==0||txt8.getText().toString().length()==0){
                Toast msg = Toast.makeText(ActivityOne.this,
                        "Field shouldn't left blank", Toast.LENGTH_LONG);
        msg.show();
}

我知道如何为任何人编写测试用例,而if statement 任何人都知道如何编写测试用例Toast。使用Robotium也不是问题。

4

3 回答 3

2

例如:

// JUnit class
Button.OnClickListener okListener = new Button.OnClickListener() {
            public void onClick(View arg0) {
                assertTrue(text1.getText().toString().isEmpty() || 
                            text2.getText().toString().isEmpty()||
                            text3.getText().toString().isEmpty()||
                            text4.getText().toString().isEmpty()||
                            text5.getText().toString().isEmpty()|| 
                            text6.getText().toString().isEmpty()||
                            txt7.getText().toString().isEmpty()||
                            txt8.getText().toString().isEmpty());
    }

public void testButtons() {
    yourButton.setOnClickListener(okListener);
    okListener.onClick(yourButton);
}

PS1:使用String.isEmpty()而不是String.length() == 0.

PS2:我建议您改用数组/列表EditText。为每个字段设置一个字段确实是一种不好的做法。如果添加/删除一个会发生什么EditText?您需要扫描所有代码才能找到EditText并删除它。使用数组/列表,您只需要更新数组/列表。

于 2013-01-28T11:26:21.203 回答
1

单元测试不适合测试 GUI。

出于这个目的,尝试使用例如Robotium

于 2013-01-28T11:26:35.943 回答
0

是的,我终于找到了 Toast 的 junit 测试用例,并且在这里使用Robotium非常简单,代码会像这样

 Solo solo = new Solo(getInstrumentation(), getActivity());
    getInstrumentation().waitForIdleSync();
    // Now do whatever you need to do to trigger your dialog.

    // Let's assume a properly lame dialog title.
    assertTrue("Could not find the dialog!", solo.searchText("MY Dialog Title"));
于 2013-01-28T14:04:26.160 回答