【发布时间】:2017-09-09 09:21:20
【问题描述】:
我正在创建一个 android 库并使用仪器测试进行单元测试。我使用的是 Android Studio 3.0。
这是我的代码(控制器类)
File file = new File("/storage/emulated/0/DCIM/Facebook/FB_IMG_1496146656900.jpg");
RequestBody reqFile = RequestBody.create(MediaType.parse("image/jpeg"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), reqFile);
RequestBody name = RequestBody.create(MediaType.parse("text/plain"), noteId);
String notebookId = getNotebookId(projectId);
if (isSessionAvailable(notebookId)) {
String session = getNotebookSession(notebookId);
Call<ResponseBody> call = mApiNotes.requestNotesAttachments(session, name, body);
call.enqueue(new NoteAttachmentCallBacks.AddNoteAttachmentCallback(assetUploadCallbacks));
}
而且改造界面是
@Multipart
@POST("/NotebookAsset")
Call<ResponseBody> requestNotesAttachments(@Header("Cookie") String notebookSession, @Part("note_id") RequestBody noteId, @Part MultipartBody.Part image);
但是当我运行代码时,这不起作用。调用改造接口类后,测试只是浏览,甚至没有结束。它不断运行测试,但永远不会结束。似乎资产没有上传。
我大概认为,
访问设备中资源的权限存在问题。所以我添加了清单文件的权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
但这不是解决方案。结果是一样的。
你能看看这个问题吗?我已经完全阻止了这个问题。
【问题讨论】:
标签: android unit-testing file-upload retrofit2