0

こんにちは、私はアンドロイドのjunitテストが初めてなので、私の質問は6つEditTextのフィールドがあり、1つButtonを押すButtonと、フィールドのフィールドの長さEditTextがゼロである天気をチェックします。ゼロの場合はaが表示され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。それぞれに 1 つのフィールドを持つことは、実際には悪い方法です。追加/削除するとどうなりますEditTextか? EditTextそれを見つけて削除するには、すべてのコードをスキャンする必要があります。配列/リストを使用すると、配列/リストを更新するだけで済みます。

于 2013-01-28T11:26:21.203 に答える
1

単体テストは GUI のテストには適していません。

この目的から、たとえばRobotiumを使用してみてください。

于 2013-01-28T11:26:35.943 に答える
0

はい、私は最終的に Toast 用の junit TestCase を見つけました。ここで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 に答える