Tag: mockito

gradle插件3.0后,kotlin单元测试失败

将Android Studio更新至3.0后,由于以下原因,我一直在收到失败的测试: java.lang.NullPointerException at org.mockito.internal.util.ConsoleMockitoLogger.log(ConsoleMockitoLogger.java:13) at org.mockito.internal.junit.UnusedStubbings.format(UnusedStubbings.java:39) at org.mockito.internal.junit.UniversalTestListener.emitWarnings(UniversalTestListener.java:70) at org.mockito.internal.junit.UniversalTestListener.testFinished(UniversalTestListener.java:47) at org.mockito.internal.junit.JUnitRule$1.evaluate(JUnitRule.java:50) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:114) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at […]

一个简单的kotlin类与mockito测试引起MissingMethodInvocationException

我开始学习Kotlin和Mockito,所以我编写了一个简单的模块来测试它。 AccountData_K.kt: open class AccountData_K { var isLogin: Boolean = false var userName: String? = null fun changeLogin() : Boolean { return !isLogin } } AccountDataMockTest_K.kt: class AccountDataMockTest_K { @Mock val accountData = AccountData_K() @Before fun setupAccountData() { MockitoAnnotations.initMocks(this) } @Test fun testNotNull() { assertNotNull(accountData) } @Test fun testIsLogin() { val result = accountData.changeLogin() assertEquals(result, […]

Kotlin + SpringBoot 2.0.0-M4失败tu加载应用程序上下文(BeanCreationException)

我正在与Kotlin和Spring(通过SpringBoot)合作。 我在2.0.0-M3,一切正常。 我决定跳到M4。 然后,我有一些麻烦。 我得到了以下堆栈跟踪: java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:107) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:44) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:242) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at […]

不能用Mockito 2来嘲笑最终的Kotlin课堂

我无法使用Mockito 2来嘲笑Kotlin最后一堂课。另外,我正在使用Robolectric。 这是我的测试代码: @RunWith(RobolectricTestRunner.class) @Config(constants = BuildConfig.class, sdk = 21) public class Test { // more mocks @Mock MyKotlinLoader kotlinLoader; @Before public void setUp() { MockitoAnnotations.initMocks(this); } } 当我们尝试初始化setUp()方法中的模拟时,测试失败。 另外,我在我的代码中使用下面的gradle依赖关系: testCompile 'org.robolectric:robolectric:3.3.2' testCompile 'org.robolectric:shadows-multidex:3.3.2' testCompile 'org.robolectric:shadows-support-v4:3.3.2' testCompile("org.powermock:powermock-api-mockito2:1.7.0") { exclude module: 'hamcrest-core' exclude module: 'objenesis' } testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-inline:2.8.9' 所有其他单元测试通过使用这种配置,但只要我试图嘲笑Kotlin类,它会引发以下错误: Mockito cannot mock/spy because : […]

Kotlin + Mockito2:演示者测试的ClassNotFoundException

我有一个基于CleanArchitecture-Android风格的Kotlin编写的示例应用程序。 以下是应用程序的配置: 演示/的build.gradle dependencies { implementation project(':domain') def presentationDependencies = rootProject.ext.presentationDependencies def commonDependencies = rootProject.ext.commonDependencies testCompile testingDependencies.junit testCompile testingDependencies.mockito // org.mockito:mockito-inline:2.10.0 } 呈现/ SRC /测试/ JAVA /包/ RepoPreferencesPresenterTest.kt internal class RepoPreferencesPresenterTest : UnitTest() { // FIXME: Mocking fails @Mock private lateinit var mockRepositoriesUseCase: RepositoriesUseCase @Mock private lateinit var mockView: RepoPreferencesContract.View private lateinit var presenter: RepoPreferencesPresenter<RepoPreferencesContract.View> […]

Kotlin单元测试没有发现模块依赖性接口

我有一个app模块和一个domain模块。 在我的domain模块中,我有一个名为Repository的接口。 在我的app模块中,我使用dagger来为我的类注入一个实现,这工作正常。 当我然后使用kotlin单元测试去测试时,在运行时我得到一个NoClassDefFoundError 。 我也尝试在我的app模块依赖关系中包含domain模块,但是这也不起作用: testImplementation project(':domain') 这里是我目前的测试依赖关系,以及我如何包括模块 implementation project(':domain') testImplementation 'junit:junit:4.12' testImplementation 'com.nhaarman:mockito-kotlin:1.5.0' 在我的单元测试中,我使用它可能是这个问题: @Mock lateinit var mockRepo : Repository

Android Kotlin:使用Mockito / PowerMock嘲笑免费的功能

我在Kotlin有一个免费的功能,我想模拟测试目的。 我的免费功能是这样的: fun somethingAwesomeIsDoneHere(param: String) : String { // Awesome } 在我的测试中,我想模拟/存根,以便当它被称为模拟值返回。 when(somethingAwesomeIsDoneHere(something)).thenReturn(retValue) 即使PowerMock可以完成,请让我知道。 PS:我正在为我的项目使用Kotlin 1.0.1-2。

如何用mockito嘲笑最后一堂课

我有最后一堂课,像这样: public final class RainOnTrees{ public void startRain(){ // some code here } } 我正在使用这个类,像这样的其他类: public class Seasons{ RainOnTrees rain = new RainOnTrees(); public void findSeasonAndRain(){ rain.startRain(); } } 在我的JUnit测试类Seasons.java我想模拟RainOnTrees类。 我怎样才能用Mockito做到这一点?

为什么Mockito不能在Kotlin中使用数字类型来模拟一个通用的参数类型?

我们正在将我们的项目转移到Kotlin语言。 我们决定从测试开始,但面临一些奇怪的行为。 这是我们的测试案例: Service.java public final class Service { private final JdbcTemplate jdbcTemplate; public Service(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public long check() { return jdbcTemplate.queryForObject("SELECT COUNT(*) FROM table", Long.class); } } JavaTest.java (工作正常) @RunWith(MockitoJUnitRunner.class) public final class JavaTest { @Mock private JdbcTemplate jdbcTemplate; @InjectMocks private Service testSubject; @Test public void test() { //given […]

MissingMethodInvocationException在Kotlin中测试已打开的类

我正在尝试使用Kotlin + RxJava和MockWebServer进行一些集成测试。 我在测试方面是一个新手,我是Kotlin学徒。 我知道Mockito和final类的局限性,但我不应该嘲笑我正在测试的类,所以我不知道真正的问题在哪里: 错误如下: Apr 16, 2016 9:59:49 PM okhttp3.mockwebserver.MockWebServer$3 execute INFO: MockWebServer[54260] starting to accept connections Apr 16, 2016 9:59:50 PM okhttp3.mockwebserver.MockWebServer$3 acceptConnections INFO: MockWebServer[54260] done accepting connections: Socket closed org.mockito.exceptions.misusing.MissingMethodInvocationException: when() requires an argument which has to be 'a method call on a mock'. For example: when(mock.getArticles()).thenReturn(articles); Also, this error might […]