我使用 PDFView 显示 PDF 文件,这是成功的。但我不知道如何在单元测试中测试这种方法。
com.github.barteksc.pdfviewer.PDFView pdfview = mainView.findViewById(R.id.pdfview);
public void showDocument(final InputStream inputStream){
pdfview.fromStream(inputStream)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.onPageChange(new OnPageChangeListener() {
@Override
public void onPageChanged(int page, int pageCount) {
}
})
.onLoad(new OnLoadCompleteListener() {
@Override
public void loadComplete(int nbPages) {
closeProgress();
totalPages = nbPages;
System.out.println("nbPages"+nbPages);
}
})
.onError(new OnErrorListener() {
@Override
public void onError(Throwable t) {
System.out.println("onError"+t.getMessage());
}
})
.load();
}
我的测试方法:</p>
@Test
public void testFetchDataFromNet() {
DocumentActivity activity = Robolectric.setupActivity(DocumentActivity.class);
activity.showDocument(PDFData.iputStreamPDF);
ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
}
但是 onLoad() 和 onError() 都不会在控制台中打印任何数据。我试过自定义阴影:</p>
@Implements(PDFView.class)
public class ShadowPDFView extends ShadowRelativeLayout {
Context context;
AttributeSet attrs;
@Implementation
public void __constructor__(Context context)
{
}
@Implementation
public void __constructor__(Context context, AttributeSet attrs)
{
this.context = context;
this.attrs = attrs;
}
@Implementation
public void __constructor__(Context context, AttributeSet attrs, int defStyleAttr)
{
}
PDFView.Configurator configurator;
@Implementation
public PDFView.Configurator fromStream(InputStream stream) {
DocumentSource documentSource = new InputStreamSource(stream);
Class clazz = null;
try {
Class c2 = Class.forName("com.github.barteksc.pdfviewer.PDFView$Configurator");
Constructor constructor = c2.getDeclaredConstructor(new Class[] {PDFView.class, DocumentSource.class });
constructor.setAccessible(true);
if (constructor != null) {
configurator = (PDFView.Configurator) constructor.newInstance(new PDFView(context,attrs), documentSource);
}
} catch (Exception e) {
e.printStackTrace();
}
return configurator;
}
}
但什么都没有改变。
请帮助或尝试提供一些想法如何实现这一目标。
我将不胜感激!