Прежде всего, вы не можете получить цвет фона кнопки, используя метод 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 "это то, что вы упомянули как " в зависимости от некоторых результатов в коде ".