concretesolutions / canarinho

Utilitários Android para padrões Brasileiros
Apache License 2.0
178 stars 42 forks source link

Exceção disparada: Method clear in android.util.SparseArray not mocked. #57

Open giovannicmelo opened 2 years ago

giovannicmelo commented 2 years ago

Em cenários de testes unitários com JUnit 4 que utilizem a classe ValidadorCPFCNPJ.java, a seguinte exceção é disparada:

Caused by: java.lang.RuntimeException: Method clear in android.util.SparseArray not mocked. See http://g.co/androidstudio/not-mocked for details.
    at android.util.SparseArray.clear(SparseArray.java)
    at br.com.concrete.canarinho.DigitoPara$Builder.trocandoPorSeEncontrar(DigitoPara.java:202)
    at br.com.concrete.canarinho.validator.ValidadorCPF.<clinit>(ValidadorCPF.java:18)
    ... 56 more

Uma solução possível seria alterar na classe DigitoPara.java na linha 133, conforme abaixo

private final SparseArray<String> substituicoes = new SparseArray<String>();

para

private final SparseArrayCompat<String> substituicoes = new SparseArrayCompat<String>();

Desta forma, poderá ser usada em testes unitários na JVM. https://developer.android.com/reference/android/support/v4/util/SparseArrayCompat.html

AlyssonPHN commented 2 years ago

Também preciso dessa correção.