gpt4 book ai didi

android - 使用 Robolectric for Android 测试 TextView 文本颜色

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:18 33 4
gpt4 key购买 nike

我正在尝试测试驱动开发/测试 android 的 textView 的文本颜色。但是,所有属性似乎都返回 0 或 null,有人知道为什么吗?

创建 TextView 的代码:

public void setupTextView() {

LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
TextView textView = new TextView(this);

textView.setText(job.getName());

if (job.getLastBuild().getBuildStatus().equals("SUCCESS")) {

textView.setTextColor(Color.parseColor("#007000"));

} else {

textView.setTextColor(Color.parseColor("#FF0000"));

}

layout.addView(textView);

}

我已经运行了该应用程序并且上面的代码有效。

我在测试代码中尝试访问的属性:

@Test
public void firstTextViewShouldReflectPassingJobStatus() throws Exception {

LinearLayout layout = layout = (LinearLayout) activity.findViewById(R.id.layout);

TextView gomoTextView = (TextView) layout.getChildAt(0);

System.out.println(gomoTextView.getCurrentTextColor()); //Returns 0
System.out.println(gomoTextView.getTextColors()); //Returns null
System.out.println(gomoTextView.getSolidColor()); //Returns 0
System.out.println(gomoTextView.getCurrentHintTextColor()); //Returns 0

//I also tried using `Robolectric.shadowOf()`:
ShadowTextView shadowGomoTextView = Robolectric.shadowOf(gomoTextView);

System.out.println(shadowGomoTextView.getTextColorHexValue()); //Returns 0
System.out.println(shadowGomoTextView.getHintColorHexValue()); //Returns null

}

更新回复评论

我在调用 onCreate() 的单元测试类中有一个 before:

private LinearLayout layout;
private HomeActivity activity;

@Before
public void setUp() throws Exception {

activity = spy(new HomeActivity());
Jenkins mockJenkins = TestUtilities.getTestJenkins();
when(activity.getJenkins()).thenReturn(mockJenkins);

activity.onCreate(null);
layout = (LinearLayout) activity.findViewById(R.id.layout);

}

以及 HomeActivity 类中的 onCreate 方法:

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Jenkins jenkins = getJenkins();
displayJenkins(jenkins);
}

然后显示 jenkins 调用大量其他方法,包括 setupTextView()

最佳答案

展望 sources它还没有实现。我建议您按照描述实现自己的影子 here .

Robolectric 2.0 已 promoted to the alpha state .我认为您的问题应该在发布期间得到解决,因为他们将尽可能多地使用真实的 Android 源代码。

关于android - 使用 Robolectric for Android 测试 TextView 文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14725229/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com