Я пытался выполнить юнит-тест своего класса для распознавания штрих-кода, но я застрял из-за слушателя, который не может справиться с юнит-тестированием.
Я очень плохо знаком с юнит-тестированием и издевательством.
public String decodeBarcode(Bitmap bitmap) {
final CountDownLatch latch = new CountDownLatch(1);
FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
final FirebaseVisionBarcodeDetector detector = getDetector();
Task<List<FirebaseVisionBarcode>> result = detector.detectInImage(image)
.addOnSuccessListener(new OnSuccessListener<List<FirebaseVisionBarcode>>() {
@Override
public void onSuccess(List<FirebaseVisionBarcode> barcodes) {
if (!(barcodes.isEmpty())) {
code = barcodes.get(0).getRawValue();
}else{
code= "";
}
latch.countDown();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
latch.countDown();
code="ERROR: Barcode decoding unsuccessful, please try again.";
Log.e("Error Barcode", e.getMessage());
}
});
try {
latch.await();
}catch(InterruptedException e){
Log.e("Latch exception", e.getMessage());
return "Fatal error! Please try again.";
}
return code;
}
Если кто-то может дать мне какое-либо предложение, оно будет очень оценено.