Модульное тестирование Android с Robotium - PullRequest
1 голос
/ 07 ноября 2011

Я делаю урок Robotium.В моем приложении у меня есть кнопка.Эта кнопка меняет цвет фона в зависимости от некоторых результатов в коде.У меня вопрос, как я могу утверждать цвет кнопки, я пытаюсь что-то вроде этого

assertEquals("", scStatusButton.getPaint().getColor());

Но это показывает мне большое отрицательное число.Как я могу получить что-то более подходящее?Спасибо

1 Ответ

0 голосов
/ 30 августа 2012

Прежде всего, вы не можете получить цвет фона кнопки, используя метод getPaint().getPaint().getColor() даст вам цвет текста кнопки как значение типа int.Вполне нормально иметь отрицательный результат в качестве ответа для кода вроде;

int i = colorButton.getPaint().getColor();

Ниже приведен способ подтверждения цвета кнопки в модульном тестировании с Robotium .

package com.anuja.bu.test;

import android.graphics.drawable.ColorDrawable;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.Button;

import com.anuja.bu.BuHomeActivity;
import com.anuja.bu.R;
import com.jayway.android.robotium.solo.Solo;

public class TestBuHomeActivity extends ActivityInstrumentationTestCase2<BuHomeActivity> {

    private Solo solo;

    public TestBuHomeActivity() {
        super("com.anuja.bu", BuHomeActivity.class);        
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();

        solo = new Solo(getInstrumentation(), getActivity());
    }

    public void testButtonColor(){

        int i = 1;

        Button colorTestButton = (Button) solo.getView(R.id.buHomeActivity_color_button);

        solo.clickOnButton("Color");

        ColorDrawable colorDrawable = (ColorDrawable) colorTestButton.getBackground();
        int buttonColorValue = colorDrawable.getColor();

        if(i == 0){
            assertTrue(buttonColorValue == -65536); // Red
        }else{
            assertTrue(buttonColorValue == -16711936); // Green
        }
    }

    @Override
    protected void tearDown() throws Exception {

        solo.finishOpenedActivities();
    }
}

" i "это то, что вы упомянули как " в зависимости от некоторых результатов в коде ".

...