在我的应用程序中,我使用客户经理的方法来获取所有者电子邮件。如何使用 Robolectric 测试此方法?我应该为此目的使用嘲讽吗?如果我是对的,我可以使用 Mockito 吗?有什么教程我可以做到吗?
我正在寻找一种在 android 测试中模拟 api 响应的方法。
我已经读过机器人电可以用于此,但我真的很感激这方面的任何建议。
我想模拟用户的步行并计算他们的步数以进行自动测试。
我试图搜索解决方案,但只找到了模拟位置。
我们的应用程序中有一个 Web 视图,它被检测为单个网页元素 (android.webkit.WebView)。不显示布局层次结构来检查单个 UI 组件。我尝试使用“UI Automator Viewer”和“Appium Inspector”检查元素,结果相同。是否有任何其他工具可用于检查 Web 视图?请指教!
这是我的代码
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ChangeTextBehaviorTest {
public static final String STRING_TO_BE_TYPED = "Espresso";
@Rule
public ActivityTestRule<LandingActivity> mActivityRule = new ActivityTestRule<> (
LandingActivity.class );
@Test
public
void changeText_sameActivity () {
String testText = "testText";
onView ( withId ( R.id.action_a) )
.perform ( click (), closeSoftKeyboard () );
onView ( withHint ( R.string.add_list ) ).perform ( typeTextIntoFocusedView ( testText ) );
onView ( withText ("ADD" ) ).perform ( click () );
}
Run Code Online (Sandbox Code Playgroud)
首先我需要点击floatingButton来打开MaterialDialog
然后我尝试通过它的提示访问 editText 引用
onView ( withHint ( R.string.add_list …Run Code Online (Sandbox Code Playgroud) 在没有源代码的情况下,是否无法使用 espresso 自动化 android 应用程序。Gradle 期望这样的结构:
src/main/
src/androidTest/
Run Code Online (Sandbox Code Playgroud)
但我想在不同版本的应用程序上运行这些自动化测试?这是否可以仅通过安装应用程序并运行测试来实现?
这里说它不可能:
我有一个包含 50 次浓缩咖啡测试的应用程序。在第 10 次测试中,应用程序崩溃,其余测试无法执行。有没有办法可以重新启动应用程序并从下一个测试开始执行?
testing android automated-tests android-testing android-espresso
我有一个首选项 util 类可以在一个地方存储和检索共享首选项中的数据。
Prefuutils.java:
public class PrefUtils {
private static final String PREF_ORGANIZATION = "organization";
private static SharedPreferences getPrefs(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
}
private static SharedPreferences.Editor getEditor(Context context) {
return getPrefs(context).edit();
}
public static void storeOrganization(@NonNull Context context,
@NonNull Organization organization) {
String json = new Gson().toJson(organization);
getEditor(context).putString(PREF_ORGANIZATION, json).apply();
}
@Nullable public static Organization getOrganization(@NonNull Context context) {
String json = getPrefs(context).getString(PREF_ORGANIZATION, null);
return new Gson().fromJson(json, Organization.class);
}
}
Run Code Online (Sandbox Code Playgroud)
显示 LoginActivity.java 中 PrefUtils 用法的示例代码:
@Override public void showLoginView() …Run Code Online (Sandbox Code Playgroud) android mockito sharedpreferences android-testing android-espresso
我正在使用 mockwebserver 来模拟我的 android 应用程序的请求和响应。我正在测试通过一系列 4 次服务调用的登录功能。
我正在尝试模拟重定向调用的响应。这是我的代码:
@Test
public void testSuccessfulLogin() throws Exception {
// Post
server.enqueue(new MockResponse()
.setResponseCode(HTTP_OK)
.setBody(getStringFromFile(getInstrumentation().getContext(), "access_token.json")));
// Redirect
server.enqueue(new MockResponse().setResponseCode(HTTP_MOVED_TEMP));
// GET user info
server.enqueue(new MockResponse().setResponseCode(HTTP_OK).setBody(getStringFromFile(getInstrumentation().getContext(), "userinfo.json")));
// GET some other stuff
server.enqueue(new MockResponse().setResponseCode(HTTP_OK)
.setBody(getStringFromFile(getInstrumentation().getContext(), "sts.json")));
// Init call
loginWithoutWaiting(Data.serviceLoginUsername, Data.serviceLoginPassword);
// Debug (need to loop 4 times to get all 4 call paths)
RecordedRequest request = server.takeRequest();
request.getPath();
}
Run Code Online (Sandbox Code Playgroud)
android 的测试文档和许多其他教程一直说我应该@RunWith(AndroidJUnit4.class)在我的所有仪器测试中包含这一行。但是,我没有在我的任何指令中添加这个注释。测试,仍然所有这些都运行良好。所以,
发生了什么以及为什么要添加 @RunWith(AndroidJUnit4.class)上面的指令。考试班?
android-testing ×10
android ×7
robolectric ×3
mockito ×2
appium ×1
automation ×1
autotest ×1
gradle ×1
junit ×1
okhttp3 ×1
testing ×1