我已經寫了一個類來管理android應用程序項目中的日誌記錄。 LogManager基本上是android.util.log的包裝器 它處理記錄到文件(如果應用程序崩潰)和標準調試日誌記錄。 我想單元測試使用JUnit的類。Android - 如何使用mockito UnitTest記錄類
我曾嘗試以下,但它似乎沒有看完的例子後,產生我所期望的結果:
LogManager.class(這是我使用的類的簡化版本,用於演示目的)
public class LogManager implements ILogManager
{
public void log(String tag, String message)
{
Log.e(tag, message);
}
}
這裏是我的測試類
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
@PrepareForTest({Log.class, LogManager.class})
public class LogManagerUnitTest
{
@Test
public void testLogConsoleInfo()
{
PowerMockito.mockStatic(Log.class);
LogManager.getInstance().log(LogLevel.INFO, "test", "test");
PowerMockito.verifyStatic(Mockito.times(1));
Log.e(anyString(), anyString());
}
}
我的問題是,這傳遞不管我放。 例如:如果我用Log.wtf(...)替換上次調用,它仍然通過。我會假設它會失敗,因爲Log.wtf沒有在靜態類Log中調用? 所以我的問題是,爲什麼這種方法不能按預期工作,那麼正確的方法是什麼?
我得到一個錯誤:'java.lang.NoClassDefFoundError:組織/的Mockito/CGLIB /代理/ Enhancer' –