Как издеваться над статическими методами в Котлине?

Я пытаюсь издеваться над статическим методом с jMockit в Котлине:

object: MockUp<System>() { @Mock fun getProperty(name: String) = "tagB" } 

Но я получаю следующую ошибку:

Не удалось загрузить Logmanager «tagB» java.lang.ClassNotFoundException: tagB в java.net.URLClassLoader.findClass (URLClassLoader.java:381) в java.lang.ClassLoader.loadClass (ClassLoader.java:424) на sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:331) в java.lang.ClassLoader.loadClass (ClassLoader.java:357) в java.util.logging.LogManager $ 1.run (LogManager.java:195) в java.util.logging .LogManager $ 1.run (LogManager.java:181) в java.security.AccessController.doPrivileged (собственный метод) в java.util.logging.LogManager. (LogManager.java:181) в java.util.logging.Logger.getPlatformLogger (Logger.java:572) в java.util.logging.LoggingProxyImpl.getLogger (LoggingProxyImpl.java:41) на sun.util.logging.LoggingSupport.getLogger (LoggingSupport.java:100) на sun.util.logging.PlatformLogger $ JavaLoggerProxy. (PlatformLogger.java:602) на sun.util.logging.PlatformLogger $ JavaLoggerProxy. (PlatformLogger.java:597) на sun.util.logging.PlatformLogger. (PlatformLogger.java:239) на sun.util.logging. PlatformLog ger.getLogger (PlatformLogger.java:198) на sun.util.locale.provider.LocaleServiceProviderPool.config (LocaleServiceProviderPool.java:142) на sun.util.locale.provider.LocaleProviderAdapter. (LocaleProviderAdapter.java:165) в java. text.DecimalFormatSymbols.getInstance (DecimalFormatSymbols.java:178) в java.util.Formatter.getZero (Formatter.java:2283) в java.util.Formatter. (Formatter.java:1892) в java.util.Formatter. (Formatter .java: 1914) at java.lang.String.format (String.java:2940) на org.junit.runner.Description.formatDisplayName (Description.java:114) на org.junit.runner.Description.createTestDescription (Описание. java: 73) в io.kotlintest.TestCase.getDescription (testcase.kt: 45) в io.kotlintest.TestBase.descriptionForSuite $ kotlintest_main (TestBase.kt: 153) в io.kotlintest.TestBase.getDescription $ kotlintest_main (TestBase.kt : 39) at io.kotlintest.KTestJUnitRunner.getDescription (KTestJUnitRunner.kt: 11) на com.intellij.junit4.JUnit4IdeaTestRunner.getDescription (JUnit4IdeaTestRunner.java:123 ) на com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java:99) на com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java:42) на com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart ( JUnitStarter.java:234) на com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:74) на sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) на sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в com.intellij.rt.execution.application.AppMain.main (AppMain.java:144) Ошибка конфигурации журнала «tagB» java.lang.ClassNotFoundException: tagB …

Другие подходы с блоками ожиданий также не увенчались успехом.

Как я могу издеваться над статическим методом в Котлин?

    Вы должны издеваться над Системой так:

     class MockSystem : MockUp<System>() { @Mock fun getProperty(name: String) = "tagB" } class MockTest { val m = MockSystem(); @Test fun test() { Assert.assertEquals(System.getProperty("hello"), "tagB") } }