Как провести модульный тестовый класс, использующий Firebase для распознавания штрих-кода - PullRequest
0 голосов
/ 10 января 2019

Я пытался выполнить юнит-тест своего класса для распознавания штрих-кода, но я застрял из-за слушателя, который не может справиться с юнит-тестированием. Я очень плохо знаком с юнит-тестированием и издевательством.

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;
}

Если кто-то может дать мне какое-либо предложение, оно будет очень оценено.

...