Android,Espresso测试不能在Kotlin上编写活动

org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.3 com.android.support.test.espresso:espresso-core:2.2.2 

工作流程:

  1. 片段有列表视图(新闻)
  2. 当点击列表上的一些项目,然后打开显示新闻细节的活动(NewsDetailsActivity),标题为“单一消息”

片段的代码:

 Integer newsId = 1234; Intent intent = new Intent(context, NewsDetailsActivity.class); intent.putExtra(NewsDetailsActivity.ID newsId); startActivity(intent); 

NewsDetailsActivity的java代码:

 public class NewsDetailsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle extras = getIntent().getExtras(); setContentView(R.layout.news_details); int newsID = 0; String mainCaption = ""; if (extras != null) { newsID = extras.getInt(SELECTED_NEWS_ID); mainCaption = extras.getString(SELECTED_NEWS); } titleTextView = (TextView) findViewById(R.id.titleTextView); mainNewsDetailsContainer = (LinearLayout) findViewById(R.id.mainNewsDetailsContainer); mainCaptionTextView = (TextView) findViewById(R.id.mainCaptionTextView); } 

当活动开放时,标题是“ 单一新闻 ”。 这里的截图: 在这里输入图片描述

所以工作正常。 好。

所以我写了Android Espresso测试:

  @Test public void newsDetailsTitle() { // click on listView item and as result open NewsDetailsActivity onData(anything()).inAdapterView(withId(R.id.containerNotEmptyListView)).atPosition(NEWS_LIST_POSITION).perform(click()); // test that title of NewsDetailsActivity is "Single news" onView(allOf(withId(R.id.titleTextView), withText(R.string.news_single))).check(matches(isDisplayed())); } 

它通过了,工作正常。 好。

所以现在我们重写Kotlin语言的NewsDetailsActivity。

NewsDetailsActivity的Kotlin代码:

  class NewsDetailsActivity : AppCompatActivity() { @SuppressLint("NewApi") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) verticalLayout { include<View>(R.layout.toolbar) find<TextView>(R.id.titleTextView).setText(R.string.single_news) setSupportActionBar(find<Toolbar>(R.id.toolbar)) supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) supportActionBar?.setDisplayShowTitleEnabled(false) } } } 

当我启动应用程序都工作正常。 新闻详情打开并显示标题“ 单一新闻” 。 好。

但是当我开始测试时,NewsDetailsActivity的标题现在不是“ 单一新闻 ”。 它的绝对另一个标题=“ 推荐 ”。

这里的截图: 在这里输入图片描述

因为结果测试失败。 关键R.string.news_single没有改变。

为什么新闻稿的标题改变了?