1
我制作了Robotium单元测试课程。 在我的应用程序中,我有一个按钮。该按钮根据代码中的某些结果改变背景颜色。 我的问题是我怎么能断言按钮 的颜色我尝试这样的事情使用Robotium进行Android单元测试
assertEquals("", scStatusButton.getPaint().getColor());
但是,这显示了我一个否定大数目。 我如何获得更适合的东西? 谢谢
我制作了Robotium单元测试课程。 在我的应用程序中,我有一个按钮。该按钮根据代码中的某些结果改变背景颜色。 我的问题是我怎么能断言按钮 的颜色我尝试这样的事情使用Robotium进行Android单元测试
assertEquals("", scStatusButton.getPaint().getColor());
但是,这显示了我一个否定大数目。 我如何获得更适合的东西? 谢谢
首先,你不能通过使用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();
}
}
“我”是你“这取决于在代码一些成果”提到的东西。