Unit test JUnit4 mock SLF4J logger atau LOG4J guna PowerMockito
Sekarang Tedi cuba menulis beberapa unit test untuk kod-kod legasi dengan pilihan tiada pilihan untuk menukar kod tersebut kepada kod mesra unit test. Salah satu kes apabila menulis unit test untuk kod macam ini ialah nak cover bahagian yang ada log siap ada condition lak tu pada logger tersebut! Terpaksalah Tedi mock logger tersebut di mana bukan mudah nak menjayakannya. Ralat 1: Cannot subclass final class Ralat 2: Unable to set internal state on a private field Ralat 1: Cannot subclass final class Kesimpulannya menurut pemahaman Tedi lah kan ada masalah untuk subclass final class tapi punca sebenarnya tu mungkin disebabkan oleh beberapa level class dalam kod kita. Contohnya macam di bawah nanti Tedi nak mock LoggerFactory tapi ada masalah pada Log4jLoggerAdapter. Mesej ralat: java.lang.IllegalArgumentException: Cannot subclass final class class org.slf4j.impl. Log4jLoggerAdapter at org.mockito.cglib.proxy.Enhancer.generateClass(Enhancer.java:447) at org.mocki...