Espresso测试禁用动画
@Test public void test3_PaySuccessful(){ init(); ViewInteraction amountEditText = onView( allOf(withId(R.id.et_amount), isDisplayed())); amountEditText.perform(replaceText("SGD 0.010"), closeSoftKeyboard()); //, withText("Proceed") ViewInteraction appCompatButton = onView( allOf(withId(R.id.btn_confirm), isDisplayed())); appCompatButton.perform(click()); //, withText("Pay") ViewIn
0 2024-02-26
编程技术问答社区
安卓测试协调器不能在安卓X上工作
我最近迁移了我的项目以使用Androidx,并使用以下文档为Gradle上的浓缩咖啡测试配置了测试编排器: https://developer.android.com/培训/测试/Junit-Runner#使用Android-Test-Orchestrator 我有依赖性: androidTestUtil 'androidx.test:orchestrator:1.1.0-beta01' 但是,我的测试均未执行,并且在运行gradle运行以下ADB shell命令时,看起来它们失败了: adb shell 'CLASSPATH=$(pm path android.support.test.services) app_process / \ android.support.test.services.shellexecutor.ShellMain am instrument -w -e \ targetInstrumentation com.exampl
0 2024-02-19
编程技术问答社区
AndroidX.Test ActivityScenario: java.lang.AssertionError: 活动从未成为请求的状态"[RESUMED]"(最后的生命周期转换="STOPPED")。
ActivityScenario是ATSL中的Robolectric和ActivityTestrule中的活动控制器的替代. 从ATSL重构到Androidx测试时,我正在使用此代码在每个浓缩咖啡测试之前开始我的索引. @Before public void launchActivity() { ActivityScenario scenario = ActivityScenario.launch(IndexActivity.class); } 但是,我的测试在80-90%的时间里停滞不前,并丢弃了此错误. java.lang.AsserTionError:活动永远不会成为请求状态" [恢复]"(最后一个生命周期过渡="停止") 试图进行故障排除时,我将上述更改为: @Before public void launchActivity() { ActivityScenario
0 2024-02-19
编程技术问答社区
用espresso查找网页视图中的多个元素
我正在测试一个混合应用,每个视图都有网络视图. 在这些网络视图之一中,我有一个具有相同属性的元素列表.他们具有相同的XPATH定位器,例如: //h4[contains(@data-role, 'product-name')] 我想创建这些元素的列表,并通过它们迭代,计算它们,获取其属性. 在文档中,我找到了两种类似的方法: findElement(locator, value) 和 findMultipleElements(locator, value) 尽管我完全不清楚如何使用它.我试图在上面找到示例,但没有成功. 有人可以帮我吗? 解决方案 这是我找到的解决方案. @kaqqao是对的,findMultipleItems findMultipleItems call return Atom>与onWebView()无法使用,因为您只有withElement()接受Atom
0 2024-02-19
编程技术问答社区
在Espresso测试时选择本地标签
i有一个使用本机操作栏选项卡作为指示器的ViewPager.我想导航到不同的选项卡,但是选项卡组件不是一个视图,因此,onview或withText不能与persive clicks一起工作. 我有没有特定的方法来浏览标签导航? 解决方案 您可以使用滑动在选项卡之间导航: onView(withId(R.id.viewpager)).perform(swipeLeft()); onView(withId(R.id.viewpager)).perform(swipeRight()); 其他解决方案 假设标签上有文本,您可以做: onView(withText("Tab Text")).perform(click()) onview,withText和click是静态导入. 其他解决方案 我创建了以下方法,以选择任何标签,其中包含视图上的文本. public MainScreen clickOnTab(String tabText) {
0 2024-02-19
编程技术问答社区
如何用tablayout在viewpager中设置当前标签
我有一个自定义的查看码器(由于原因而被禁用)与TableAut一起工作.内容基于选择哪个选项卡进行更改.我想使用浓缩咖啡进行测试: 1)单击特定选项卡 2)在选项卡的特定页面中检查一些数据 我怎样才能做到这一点.我是浓缩咖啡的新手 解决方案 有几种方法可以做到这一点,一个简单的方法是通过选项卡标题选择元素,我使用此代码: Matcher matcher = allOf(withText("TAB TITLE"), isDescendantOfA(withId(R.id.customTab))); onView(matcher).perform(click()); SystemClock.sleep(800); // Wait a little until the content is loaded 您只需要将匹配器调整为布局. 然后,检查内容. 例如: onView(withId(R.id.someId)).check(m
0 2024-02-19
编程技术问答社区
用Espresso测试ViewPager。如何对一个项目的按钮进行操作?
我有一个只包含图片和按钮的项目. 我无法成功与项目(页面)的UI进行交互,因为除了显示的图片外,没有什么可以区分(从UI的角度). 我尝试仅选择一个具有位置的项目: onData(is(instanceOf(ItemClass.class))) .atPosition(0) .onChildView(withId(R.id.button)) .perform(click()); 引起: NomatchingViewException:在层次结构中找不到匹配的视图:可以从类别分配:class android.widget.adapterview 如何使用浓缩咖啡访问和测试ViewPager的项目? 解决方案 firstVal,ViewPager不是AdapterView,它直接从ViewGroup延伸.因此,方法onData() 不能在ViewPager上使用. 解决方案1
0 2024-02-19
编程技术问答社区
Android架构组件ViewModel-如何在测试活动中模拟ViewModel?
我正在尝试设置类似于 githubbrowsersame 的UI测试,并且看起来示例项目对于Fragment> Fragment>. > 这是我试图通过模拟ViewModel来测试Activity的代码.但是ViewModel在活动中没有设置onCreate()之前. @RunWith(AndroidJUnit4::class) class MainActivityTest { val viewModel = mock(MainViewModel::class.java) @Rule @JvmField val activityRule = ActivityTestRule(MainActivity::class.java, true, true) private val liveData = MutableLiveData>() @Before open
Espresso.onData设置inAdapterView为AlertDialog
我有一个AlertDialog,其中包含设置的选项列表: final AlertDialog.Builder builder = new AlertDialog.Builder(getContext()) .setTitle(args.getString(TITLE)) .setSingleChoiceItems(ARRAY_OF_CHARSEQUENCE, args.getInt(SELECTED_INDEX), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // handle clic
用Mock ViewModel测试NoBeanDefFoundException,用Koin、Espresso测试
我一直在尝试以Koin作为DI工具来获得简单的Espresso单元测试工作.这是我在build.gradle 中使用的依赖项 // testing with Koin // because of this // https://github.com/InsertKoinIO/koin/pull/604/commits/69391bc378bbb9007b9d82c46537e7d753be7ea3 androidTestImplementation 'org.mockito:mockito-android:3.1.0' androidTestImplementation ("org.koin:koin-test:$koin_version") { exclude group: 'org.mockito' } androidTestImplementation 'androidx.test.espresso:es
0 2024-02-19
编程技术问答社区
如何检测我在espresso中以编程方式创建的视图?
我有这条浓缩咖啡测试代码的行: onView(withId(R.id.rvWorkDaySchedule)).perform(swipeDown()); 和rvWorkDaySchedule在Android Studio的编辑器中以红色显示,因为布局中没有此类XML视图ID-我以编程方式创建此RecyClerview. 那么,如何检测到用浓缩咖啡来编程夸大的视图? 解决方案 首先,浓缩咖啡允许您在测试中使用hamcrest匹配器. . 捕获程序添加的视图最有用的是withChild,withParent,hasSibling和hasDescendant. . 为了更清楚,我将在我的应用中举一个简单的例子: onView(withId(R.id.action_bar_details)) .check(matches(withChild(withChild(withText("Details"))))); 第二,对于R
0 2024-02-19
编程技术问答社区
Android Espresso如何使用apk编写测试?
我是 Robotium用户现在切换到浓缩咖啡任何人都可以告诉我如何在浓缩咖啡中使用APK编写测试,就像我们在Robotium中所做的那样,而无需使用ACCCESS但是使用app apk. 以及如何在没有r.id的情况下访问浓缩咖啡中的视图?就像我们在机器人中所做的那样 solo.getview("viewidText") 在机器人中,这就是我们的做法 public class CoreTest extends ActivityInstrumentationTestCase2 { private Solo solo; //class name of the app launcher activity private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.rex.binderapps.RecorderActivity"; private static Class launche
4 2024-02-19
编程技术问答社区
Android Espresso没有设置NavController错误
我试图在导航架构中测试片段,测试如下: test.kt @RunWith(AndroidJUnit4::class) @MediumTest internal class AddingAccountTest{ @get:Rule var activityRule: ActivityTestRule = ActivityTestRule(MainActivity::class.java) @Before fun loadCorrespondingFragment(){ } @Test fun checkThatAllFieldsInFormAreEmpty(){ // Create a TestNavHostController val navController = TestNavHostController(ApplicationProvider.getApplicationContext()) n
Espresso-如何点击一个随机的RecyclerView项目?
有一些帖子显示如何单击带有浓缩咖啡的回收库中的特定固定项目,例如: 在浓缩咖啡中的回收库 示例: //Change the 0 with any other number, will be the position of the item clicked. onView(withId(R.id.a_main_recycler)) .perform(RecyclerViewActions .actionOnItemAtPosition(0, click())); 但是,如果要单击recyclerview中的随机项目怎么办? 解决方案 使用getActivity() 您将能够使用findViewById()(如在任何其他上下文中)和 handle recyClerview实例. 示例: @RunWith(AndroidJUnit4.class) public class Ra
0 2024-02-19
编程技术问答社区
测试该应用在安卓系统中启动另一个应用
我有一个非常简单的活动,当单击按钮时,将用户重定向到应用程序的Play商店页面: public class MyActivity extends AppCompatActivity { private static final String PLAY_STORE_URI = "market://details?id=" + BuildConfig.APPLICATION_ID; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_activity); findViewById(R.id.go_to_play_store).setOnClickListener(this::go
0 2024-02-19
编程技术问答社区
Espresso 如何在不使用R.id.viewid的情况下访问视图,就像我们在robotium中做的那样?
我正在从机器人切换到浓缩咖啡,我正在使用APK 编写测试,我无法访问代码. 在Robotium中使用Solo.GetView(" View-id")我们可以访问视图,但我没有在浓缩咖啡中如何做? 浓缩咖啡witid()方法需要r.id.viewid,我无法访问. public class AaEspressoTest { private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.tri.re.CordActivity"; private static Class launcherActivityClass; static { try { launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); } catch (ClassNotFoundException e) {
0 2024-02-19
编程技术问答社区
如何在可组合测试中模拟卡片上的滑动手势?
我有一个具有组合MyCard()的应用程序. 我正在用myTest()测试该应用程序,并希望在卡上模拟swipeRight手势. 当我使用performTouchInput { swipeRight() }时,什么也不会发生. UI不会更新和卡停留在同一位置. 如何模拟卡片上的右图?我想念什么? 所需结果 代码 @OptIn(ExperimentalCoroutinesApi::class) class MyTest { @get:Rule val composeRule = createComposeRule() @Before fun setUp() { composeRule.setContent { MyCard() } } @Test fun myTest() = runTest { composeRule.o
当用捆绑方式启动活动时,如何使用ActivityTestRule?
我正在使用 val activityRule = ActivityTestRule(SingleFragmentActivity::class.java, true, true) 和单fragmentActivity是我从Google Githubbrowsampame 使用的测试助手活动类 我如何使用捆绑启动活动? 解决方案 您可以从ActivityRule获得活动,并且可以为Intent 设置额外的数据 activityRule.activity.intent.putExtra("key",value) 其他解决方案 有两种实现您想要的方法的方法.不幸的是,第一个需要创建自定义ActivityRule,这将覆盖某些方法. 第二种方法不需要覆盖ActivityRule: ,但它需要将false作为ActivityRule构造函数(launchActivity = false)的第三个参数.在您的情况下: val activity
0 2024-02-19
编程技术问答社区
安卓测试中的异常 构建器NoClassDefFoundError
解决了我的项目结构和Android测试问题后,似乎另一个问题即将到来,当我尝试运行测试时,我会得到此例外: junit.framework.AssertionFailedError: Exception in constructor: testRegisterNaming (java.lang.NoClassDefFoundError: es.unizar.vv.mobile.catmdedit.app.view.LibraryActivity at es.unizar.vv.mobile.catmdedit.app.LibraryTest.(LibraryTest.java:16) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at junit.frame
0 2024-02-19
编程技术问答社区