Android,Espresso测试不能在Kotlin上编写活动
org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.3 com.android.support.test.espresso:espresso-core:2.2.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没有改变。
为什么新闻稿的标题改变了?
- Kotlin应用程序生成失败,由于“无法初始化类com.intellij.ide.highlighter.JavaFileType”
- Android Studio 3 beta 2 ClassNotFound在kotlin单元测试中
- 在浓缩咖啡测试超时,测试不运行
- 为什么Kotlin允许在不同的文件夹(例如main和androidTest)中有两个具有相同名称和包的类?
- 从1.0.2 – 1.0.3升级Kotlin:java.lang.NoSuchMethodError:没有虚方法provideInjectedData $ app_compileDebugKotlin()
- 如何使用espresso测试DeepLinks
- Android Epresso:DatePicker点击确定添加一年而不是验证
- 我如何从ID中提取文本?
- Android Espresso – 如何在所有测试中只运行一次安装程序
- 在Before方法中,ActivityTestRule.getActivity返回null
- 用MVP + Dagger进行Android测试2