Update mockito monorepo to v5 (major)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| org.mockito:mockito-android | 4.11.0 -> 5.13.0 |
||||
| org.mockito:mockito-core | 4.11.0 -> 5.13.0 |
Release Notes
mockito/mockito (org.mockito:mockito-android)
v5.13.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.13.0
- 2024-08-27 - 43 commit(s) by Breno A, Caleb Cushing, Jinwoo, Kurt Alfred Kluever, Stefano Cordio, Thach Le, dependabot[bot]
- Bump versions.bytebuddy from 1.14.19 to 1.15.0 (#β3429)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 2.0.10 to 2.0.20 (#β3427)
- Bump org.junit.platform:junit-platform-launcher from 1.10.3 to 1.11.0 (#β3425)
- Bump com.gradle.enterprise from 3.17.6 to 3.18 (#β3423)
- Fix a typo in InjectMocks (#β3422)
- Bump versions.bytebuddy from 1.14.18 to 1.14.19 (#β3417)
- Bump androidx.test:runner from 1.6.1 to 1.6.2 (#β3415)
- Bump versions.junitJupiter from 5.10.3 to 5.11.0 (#β3413)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 2.0.0 to 2.0.10 (#β3409)
- Bump org.hamcrest:hamcrest-core from 2.2 to 3.0 (#β3408)
- Bump com.google.googlejavaformat:google-java-format from 1.22.0 to 1.23.0 (#β3407)
- Bump org.shipkit:shipkit-auto-version from 2.0.9 to 2.0.10 (#β3405)
- Bump com.gradle.enterprise from 3.17.5 to 3.17.6 (#β3404)
- Bump gradle/wrapper-validation-action from 3.4.2 to 3.5.0 (#β3401)
- Bump org.assertj:assertj-core from 3.26.0 to 3.26.3 (#β3398)
- Bump versions.bytebuddy from 1.14.17 to 1.14.18 (#β3397)
- ci: add .m2 dependencies cache (#β3396)
- Bump org.codehaus.groovy:groovy from 3.0.21 to 3.0.22 (#β3394)
- Bump androidx.test:runner from 1.6.0 to 1.6.1 (#β3393)
- Bump org.junit.platform:junit-platform-launcher from 1.10.2 to 1.10.3 (#β3392)
- Gradle lazy configuration (#β3391)
- Bump androidx.test.ext:junit from 1.2.0 to 1.2.1 (#β3388)
- docs: cleanup javadoc for modularity (#β3386)
- Bump versions.junitJupiter from 5.10.2 to 5.10.3 (#β3385)
- Bump androidx.test.ext:junit from 1.1.5 to 1.2.0 (#β3383)
- Bump androidx.test:runner from 1.5.2 to 1.6.0 (#β3382)
- Bump net.ltgt.gradle:gradle-errorprone-plugin from 4.0.0 to 4.0.1 (#β3380)
- Bump gradle/wrapper-validation-action from 3.4.1 to 3.4.2 (#β3376)
- Bump gradle/wrapper-validation-action from 3.4.0 to 3.4.1 (#β3372)
- Bump gradle/wrapper-validation-action from 3.3.2 to 3.4.0 (#β3365)
- Bump org.shipkit:shipkit-auto-version from 2.0.7 to 2.0.9 (#β3364)
- Bump com.gradle.enterprise from 3.17.4 to 3.17.5 (#β3363)
- Bump org.eclipse.platform:org.eclipse.osgi from 3.19.0 to 3.20.0 (#β3362)
- Bump net.ltgt.gradle:gradle-errorprone-plugin from 3.1.0 to 4.0.0 (#β3361)
- Bump versions.bytebuddy from 1.14.16 to 1.14.17 (#β3357)
- Bump org.assertj:assertj-core from 3.25.3 to 3.26.0 (#β3355)
- EditorConfig enhancement (#β3353)
- Bump versions.bytebuddy from 1.14.15 to 1.14.16 (#β3352)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.24 to 2.0.0 (#β3351)
- Fixes #β3237: Fix NullPointerException in Only.verify (#β3349)
- Bump com.gradle.enterprise from 3.17.3 to 3.17.4 (#β3348)
- potential editorconfig enhancement (#β3347)
- Method
Only.verifythrowsNullPointerException(#β3237)
v5.12.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.12.0
- 2024-05-11 - 25 commit(s) by Piotr Przybylak, Stefano Cordio, Tim van der Lippe, dependabot[bot], jonghoonpark
- Bump com.gradle.enterprise from 3.17.2 to 3.17.3 (#β3341)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.23 to 1.9.24 (#β3339)
- Bump versions.bytebuddy from 1.14.14 to 1.14.15 (#β3338)
- Bump org.shipkit:shipkit-auto-version from 2.0.6 to 2.0.7 (#β3337)
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.23 to 1.9.24 (#β3336)
- Fixes #β3331 : Fix
AdditionalMatchers.and()andAdditionalMatchers.or()not to swap the order of matchers (#β3335) - AdditionalMatchers.and() and or() swap matcher order (#β3331)
- Bump gradle/wrapper-validation-action from 3.3.1 to 3.3.2 (#β3327)
- Bump versions.bytebuddy from 1.14.13 to 1.14.14 (#β3324)
- Bump org.shipkit:shipkit-auto-version from 2.0.5 to 2.0.6 (#β3322)
- Bump gradle/wrapper-validation-action from 3.3.0 to 3.3.1 (#β3320)
- Bump com.gradle.enterprise from 3.17 to 3.17.2 (#β3318)
- Bump gradle/wrapper-validation-action from 2.1.2 to 3.3.0 (#β3317)
- Update codecov-action version (#β3316)
- Bump com.google.googlejavaformat:google-java-format from 1.21.0 to 1.22.0 (#β3312)
- Bump com.gradle.enterprise from 3.16.2 to 3.17 (#β3311)
- Bump versions.bytebuddy from 1.14.12 to 1.14.13 (#β3308)
- Fix README logo (#β3305)
- Bump gradle/wrapper-validation-action from 2.1.1 to 2.1.2 (#β3303)
- Bump org.shipkit:shipkit-auto-version from 2.0.4 to 2.0.5 (#β3298)
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.22 to 1.9.23 (#β3296)
- Bump org.eclipse.platform:org.eclipse.osgi from 3.18.600 to 3.19.0 (#β3295)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.22 to 1.9.23 (#β3292)
- Bump com.google.googlejavaformat:google-java-format from 1.20.0 to 1.21.0 (#β3291)
- Fixes #β3286 : Mockito.only() points to the wanted call as unwanted if it is the first being calledIssue3286 (#β3287)
- Mockito.only() points to the wanted call as unwanted if it is the first being called. (#β3286)
- Bump org.codehaus.groovy:groovy from 3.0.20 to 3.0.21 (#β3284)
v5.11.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.11.0
- 2024-03-01 - 17 commit(s) by Aouichaoui Youssef, Franz Wong, Pranoti Durugkar, RΓ³bert Papp, dependabot[bot]
- Fixes #β3281 : Add native method to exception message of MissingMethodIβ¦ (#β3283)
- MissingMethodInvocationException is thrown when mocking native method in 5.x (#β3281)
- Bump com.google.googlejavaformat:google-java-format from 1.19.2 to 1.20.0 (#β3277)
- Bump versions.bytebuddy from 1.14.11 to 1.14.12 (#β3272)
- Bump gradle/wrapper-validation-action from 2.1.0 to 2.1.1 (#β3268)
- Bump org.shipkit:shipkit-auto-version from 2.0.3 to 2.0.4 (#β3267)
- Bump gradle/wrapper-validation-action from 2.0.1 to 2.1.0 (#β3266)
- Bump org.junit.platform:junit-platform-launcher from 1.10.1 to 1.10.2 (#β3265)
- Bump gradle/wrapper-validation-action from 2.0.0 to 2.0.1 (#β3264)
- Bump org.assertj:assertj-core from 3.25.2 to 3.25.3 (#β3261)
- Bump versions.junitJupiter from 5.10.1 to 5.10.2 (#β3260)
- Bump gradle/wrapper-validation-action from 1.1.0 to 2.0.0 (#β3258)
- Fixes #β3229: Resolve test generic arguments (#β3257)
- Bump org.shipkit:shipkit-auto-version from 2.0.2 to 2.0.3 (#β3256)
- Use kvm on ubuntu instead of macos to run Android tests (#β3252)
- Fixes #β3240 : Renamed mockito bom artifact (#β3251)
- Remove shipkit workaround for generateChangelog (#β3250)
- Bump com.gradle.enterprise from 3.16.1 to 3.16.2 (#β3249)
- Mockito bom missing artifact in maven central for java21 (#β3240)
@Captortest parameters don't work with primitive type arguments (#β3229)- Gradle 8.2: work around fix for release publishing (#β3053)
v5.10.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.10.0
- 2024-01-24 - 8 commit(s) by Andre Brait, dependabot[bot]
- Bump org.shipkit:shipkit-auto-version from 1.2.2 to 2.0.2 (#β3248)
- Bump org.assertj:assertj-core from 3.25.1 to 3.25.2 (#β3247)
- Bump org.shipkit:shipkit-changelog from 1.2.0 to 2.0.1 (#β3245)
- Bump com.diffplug.spotless from 6.24.0 to 6.25.0 (#β3244)
- Better typing for PluginLoader#loadPlugin(..) (#β3242)
- Bump com.github.ben-manes.versions from 0.50.0 to 0.51.0 (#β3241)
- Bump com.diffplug.spotless from 6.23.3 to 6.24.0 (#β3236)
- Fixes #β3219: Add support for static mocks on DoNotMockEnforcer (#β3220)
- Mockito#mockStatic(Class<?>) skips DoNotMockEnforcer (#β3219)
v5.9.0
What's Changed
- Bump com.diffplug.spotless from 6.23.2 to 6.23.3 by @βdependabot in https://github.com/mockito/mockito/pull/3191
- Bump com.gradle.enterprise from 3.15.1 to 3.16 by @βdependabot in https://github.com/mockito/mockito/pull/3192
- Bump org.eclipse.platform:org.eclipse.osgi from 3.18.500 to 3.18.600 by @βdependabot in https://github.com/mockito/mockito/pull/3193
- Bump com.gradle.enterprise from 3.16 to 3.16.1 by @βdependabot in https://github.com/mockito/mockito/pull/3200
- Bump actions/upload-artifact from 3 to 4 by @βdependabot in https://github.com/mockito/mockito/pull/3201
- Bump com.google.googlejavaformat:google-java-format from 1.18.1 to 1.19.1 by @βdependabot in https://github.com/mockito/mockito/pull/3206
- Bump versions.bytebuddy from 1.14.10 to 1.14.11 by @βdependabot in https://github.com/mockito/mockito/pull/3208
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.21 to 1.9.22 by @βdependabot in https://github.com/mockito/mockito/pull/3211
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.21 to 1.9.22 by @βdependabot in https://github.com/mockito/mockito/pull/3210
- Bump org.codehaus.groovy:groovy from 3.0.19 to 3.0.20 by @βdependabot in https://github.com/mockito/mockito/pull/3213
- @βsince at ArgumentCaptor.captor() by @βbjmi in https://github.com/mockito/mockito/pull/3214
- Bump org.assertj:assertj-core from 3.24.2 to 3.25.0 by @βdependabot in https://github.com/mockito/mockito/pull/3218
- Bump org.assertj:assertj-core from 3.25.0 to 3.25.1 by @βdependabot in https://github.com/mockito/mockito/pull/3223
- Update Gradle to 8.5 by @βscordio in https://github.com/mockito/mockito/pull/3225
- Bump com.google.googlejavaformat:google-java-format from 1.19.1 to 1.19.2 by @βdependabot in https://github.com/mockito/mockito/pull/3228
- Run release job on Java 21 by @βscordio in https://github.com/mockito/mockito/pull/3226
- Bump org.gradle.toolchains.foojay-resolver-convention from 0.7.0 to 0.8.0 by @βdependabot in https://github.com/mockito/mockito/pull/3234
- Align Javadoc configuration to Java 21 standards by @βscordio in https://github.com/mockito/mockito/pull/3230
New Contributors
- @βbjmi made their first contribution in https://github.com/mockito/mockito/pull/3214
Full Changelog: https://github.com/mockito/mockito/compare/v5.8.0...v5.9.0
v5.8.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.8.0
- 2023-12-01 - 15 commit(s) by Andreas Turban, MikaΓ«l Francoeur, dependabot[bot], jfrantzius
- #β3000: fix ArrayIndexOutOfBoundsException (#β3190)
- Bump com.diffplug.spotless from 6.23.1 to 6.23.2 (#β3188)
- Bump com.diffplug.spotless from 6.23.0 to 6.23.1 (#β3186)
- Bump actions/setup-java from 3 to 4 (#β3185)
- Apply spotless to all java projects (#β3184)
- Bump com.diffplug.spotless from 6.22.0 to 6.23.0 (#β3182)
- Fixes #β3179 : Add module for Java 21 tests. (#β3180)
- Need separate module for java 21 tests (#β3179)
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.20 to 1.9.21 (#β3176)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.20 to 1.9.21 (#β3175)
- Bump versions.bytebuddy from 1.14.9 to 1.14.10 (#β3174)
- Fixes #β3160 : Fix interference between spies when spying on records. (#β3173)
- Bump com.github.ben-manes.versions from 0.49.0 to 0.50.0 (#β3172)
- Bump versions.junitJupiter from 5.10.0 to 5.10.1 (#β3169)
- Bump org.junit.platform:junit-platform-launcher from 1.10.0 to 1.10.1 (#β3168)
- Deep Stubs Incompatible With Mocking Enum (#β3167)
- Annotation-based spying on a generic class breaks existing final/inline Spies (#β3160)
- ArrayIndexOutOfBoundsException with Version 5.3.1 (#β3000)
- Deep Stubs Incompatible With Mocking Enum (#β2984)
v5.7.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.7.0
- 2023-11-02 - 15 commit(s) by Stefan M, Tim van der Lippe, Valery Yatsynovich, Vladimir Glinskikh, ascopes, dependabot[bot]
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.10 to 1.9.20 (#β3166)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.10 to 1.9.20 (#β3165)
- Attempt to detect system property mangling prior to loading ByteBuddy. (#β3164)
- Handle Termux in InlineDelegateByteBuddyMockMaker.java (#β3158)
- Bump versions.errorprone from 2.22.0 to 2.23.0 (#β3153)
- Fix license url according to spdx license spec (#β3152)
- Remove checks for unsupported Java version from unit tests (#β3150)
- Add CodeCov token to upload coverage report (#β3149)
- Migrate to JaCoCo
0.8.11(#β3147) - Add Java 21 to CI build matrix (#β3145)
- Feat: add generic-inferred methods for constructing ArgumentCaptors (#β3144)
- Bump gradle from 8.2 to 8.4 (#β3142)
- Bump com.github.ben-manes.versions from 0.48.0 to 0.49.0 (#β3139)
- Bump versions.bytebuddy from 1.14.8 to 1.14.9 (#β3138)
- Bump biz.aQute.bnd.builder from 6.4.0 to 7.0.0 (#β3135)
v5.6.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.6.0
- 2023-10-06 - 22 commit(s) by Andreas Turban, Stefan M, StevenCurran, Yevhen Lazhyntsev, dependabot[bot]
- Use spdx identifier for license name (#β3134)
- Fixes #β1382 Jupiter Captor annotation support (#β3133)
- Bump com.gradle.enterprise from 3.15 to 3.15.1 (#β3132)
- Bump com.google.googlejavaformat:google-java-format from 1.18.0 to 1.18.1 (#β3131)
- Make MockUtil.getMockMaker() public Mockito API (#β3129)
- Make MockUtil.getMockMaker() public or public Mockito API (#β3128)
- Bump com.google.googlejavaformat:google-java-format from 1.17.0 to 1.18.0 (#β3126)
- Bump com.diffplug.spotless from 6.21.0 to 6.22.0 (#β3125)
- Bump versions.errorprone from 2.21.1 to 2.22.0 (#β3122)
- Bump versions.bytebuddy from 1.14.7 to 1.14.8 (#β3117)
- Bump com.gradle.enterprise from 3.14.1 to 3.15 (#β3115)
- Bump org.eclipse.platform:org.eclipse.osgi from 3.18.400 to 3.18.500 (#β3113)
- Bump com.github.ben-manes.versions from 0.47.0 to 0.48.0 (#β3110)
- Bump actions/checkout from 3 to 4 (#β3108)
- Bump com.diffplug.spotless from 6.20.0 to 6.21.0 (#β3106)
- Bump versions.bytebuddy from 1.14.6 to 1.14.7 (#β3105)
- Update Javadoc for ArgumentCaptor (#β3103)
- Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.9.0 to 1.9.10 (#β3102)
- Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.0 to 1.9.10 (#β3101)
- Bump org.codehaus.groovy:groovy from 3.0.18 to 3.0.19 (#β3100)
- Resolve more Gradle Tasks lazily (#β3099)
- Added JavaFlightRecorder options for Tests (#β3098)
- Default mock of Optional.isEmpty() returns true for RETURN_DEEP_STUBS (#β3097)
- Default mock of
Optionalis notemptywhen usingRETURN_DEEP_STUBS(#β2865) - Support @βCaptor injection in JUnit 5 method parameters (#β1382)
v5.5.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.5.0
- 2023-08-22 - 25 commit(s) by Andreas Turban, Chris Egerton, RΓ³bert Papp, Thach Le, dependabot[bot]
- Bump org.gradle.toolchains.foojay-resolver-convention from 0.6.0 to 0.7.0 (#β3096)
- Excessive locking in TypeCachingBytecodeGenerator#BOOTSTRAP_LOCK (#β3095)
- Bump versions.bytebuddy from 1.14.5 to 1.14.6 (#β3094)
- Fixes 3087 : Add note on backporting to README (#β3090)
- Backporting policy (#β3087)
- Bump versions.errorprone from 2.21.0 to 2.21.1 (#β3083)
- Fixes #β3077 : Report unused stubbing exceptions when test filter is no-op (#β3078)
- Unused stubbings are not reported when filters are used (#β3077)
- Bump versions.errorprone from 2.20.0 to 2.21.0 (#β3076)
- Bump com.gradle.enterprise from 3.14 to 3.14.1 (#β3074)
- Bump org.opentest4j:opentest4j from 1.2.0 to 1.3.0 (#β3072)
- Bump versions.junitJupiter from 5.9.3 to 5.10.0 (#β3071)
- Bump org.junit.platform:junit-platform-launcher from 1.9.3 to 1.10.0 (#β3070)
- Bump gradle/wrapper-validation-action from 1.0.6 to 1.1.0 (#β3069)
- Gradle 8.3 compatibility: buildDir -> layout.buildDirectory (#β3068)
- Bump com.gradle.enterprise from 3.13.4 to 3.14 (#β3067)
- Bump com.diffplug.spotless from 6.19.0 to 6.20.0 (#β3066)
- Toolchain for Test task (#β3064)
- Gradle build script improvements (#β3062)
- Fixes #β3046 (#β3060)
- Fix Gradle 8.2 deprecation of Conventions in nexus plugin. (#β3056)
- Bump kotlinVersion from 1.8.22 to 1.9.0 (#β3055)
- Bump ru.vyarus.animalsniffer from 1.7.0 to 1.7.1 (#β3054)
- Gradle 8.2: work around fix for release publishing (#β3053)
- Rewire Jacoco for Gradle 8/9 (#β3052)
- Gradle 7.6 to 8.2 (conventions to extensions migration, mostly) (#β3051)
- Bump org.codehaus.groovy:groovy from 3.0.17 to 3.0.18 (#β3049)
- Mockito#reset Condescending Documentation (#β3046)
- Excessive locking in TypeCachingBytecodeGenerator#BOOTSTRAP_LOCK (#β3035)
v5.4.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.4.0
- 2023-06-18 - 22 commit(s) by Alexander von Trostorff, Andriy Redko, Benoit Maggi, Chris Povirk, DerFrZocker, Nicolas Ot, Tim van der Lippe, dependabot[bot], ellaella12
- Bump versions.errorprone from 2.19.1 to 2.20.0 (#β3041)
- Bump org.eclipse.platform:org.eclipse.osgi from 3.18.300 to 3.18.400 (#β3038)
- Bump com.google.auto.service:auto-service from 1.1.0 to 1.1.1 (#β3036)
- Bump com.github.ben-manes.versions from 0.46.0 to 0.47.0 (#β3034)
- Bump kotlinVersion from 1.8.21 to 1.8.22 (#β3033)
- Documentation about MockMakers slightly outdated in some places. Fixes #β3031 (#β3032)
- Documentation about MockMakers slightly outdated in some places (#β3031)
- Bump versions.bytebuddy from 1.14.4 to 1.14.5 (#β3025)
- Edit DoAnswerStyleStubbing.isSet() to return true if there are answers (#β3020)
- Bump com.diffplug.spotless from 6.18.0 to 6.19.0 (#β3018)
- Bump com.google.auto.service:auto-service from 1.0.1 to 1.1.0 (#β3017)
- Bump versions.errorprone from 2.18.0 to 2.19.1 (#β3009)
- Fix
@Mock(serializable = true)for parameterized types. (#β3007) - Add varargs changes to
ArgumentMatchers#any()JavaDoc (#β3003) - Mockito 5 any() does not match a vararg int[] argument anymore. I need to use any(int[].class) to get the ArgumentMatcher to work (#β2998)
- Bump com.google.googlejavaformat:google-java-format from 1.16.0 to 1.17.0 (#β2996)
- Remove redundant double "now" in JavaDocs for mock without class (#β2994)
- Bump org.junit.platform:junit-platform-launcher from 1.9.2 to 1.9.3 (#β2993)
- Bump versions.junitJupiter from 5.9.2 to 5.9.3 (#β2992)
- Provide a variant of assertArg that works well with checked exceptions (#β2991)
- Bump kotlinVersion from 1.8.10 to 1.8.21 (#β2990)
- Fix #β2915 Forbid spy on mocked interface (#β2989)
- Bump net.ltgt.gradle:gradle-errorprone-plugin from 3.0.1 to 3.1.0 (#β2987)
@Mock(serializable = true)no longer works with parameterized types (#β2979)- Bug with @βInjectMocks in 5.3.0 (#β2978)
- Function name is incorrect. (#β2955)
- Verify on Spy Interface incorrect count of actual invocation (#β2915)
- Only run injection once (#β2603)
- mockito-core MockitoAnnotations::openMocks initializes class twice if said class has super class (#β2602)
v5.3.1
Changelog generated by Shipkit Changelog Gradle Plugin
5.3.1
- 2023-04-21 - 2 commit(s) by Rafael Winterhalter, jfrantzius
- Fixes 2972: Weakens visibility constraint (#β2983)
- Bugfix 2974 fix npe (#β2976)
- Fix for #β2958 eliminates CCE but leads to NPE (#β2974)
- Spying objects not working properly since 5.3.0 (#β2972)
v5.3.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.3.0
- 2023-04-11 - 14 commit(s) by Krzysztof KrasoΕ, Maciej Walkowiak, Rafael Winterhalter, Wesley Tsai, dependabot[bot], jfrantzius
- Bump com.diffplug.spotless from 6.17.0 to 6.18.0 (#β2967)
- Bump versions.bytebuddy from 1.14.3 to 1.14.4 (#β2966)
- Adds
withoutAnnotationsparameter to@Mock(#β2965) - Fix ClassCastException (#β2962)
- Bump org.codehaus.groovy:groovy from 3.0.16 to 3.0.17 (#β2959)
- ClassCastException when combining InjectMocks with generified Mock field (#β2958)
- Bump versions.bytebuddy from 1.14.2 to 1.14.3 (#β2950)
- Add
ArgumentMatchers#assertArgmethod. (#β2949) - Fixes 2947: correct visibility check to respect nestmates (#β2948)
- spy does not initialize objects fully with InstrumentationMemberAccessor (#β2947)
- Fixes #β2877: removed mockito-inline as subproject and actual subproject (#β2945)
- #β2934 throw exception on multiple matches by type if cannot be reduceβ¦ (#β2942)
- Bump org.eclipse.platform:org.eclipse.osgi from 3.18.200 to 3.18.300 (#β2941)
- Bump com.diffplug.spotless from 6.16.0 to 6.17.0 (#β2940)
- Bump org.codehaus.groovy:groovy from 3.0.15 to 3.0.16 (#β2939)
- Bump versions.bytebuddy from 1.14.1 to 1.14.2 (#β2938)
- Feature suggestion: TerminalMockCandidateFilter should report error when more than one candidate left (#β2934)
- Mockito-inline dependency after upgrade 5.0.0 (#β2877)
- Assertions on parameters during verification (#β2285)
v5.2.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.2.0
- 2023-03-09 - 25 commit(s) by Andriy Redko, Iulian Dragos, Roberto Trunfio, RΓ³bert Papp, dependabot[bot], jfrantzius, tobiasbaum
- Fixes 2933: IOUtils does not depend on platform encoding any more (#β2935)
- Execution with mockito-inline fails on platforms with EBCDIC as default encoding (#β2933)
- Bump io.github.gradle-nexus:publish-plugin from 1.2.0 to 1.3.0 (#β2932)
- Bump versions.bytebuddy from 1.14.0 to 1.14.1 (#β2931)
- Bump com.diffplug.spotless from 6.15.0 to 6.16.0 (#β2930)
- Bump com.google.googlejavaformat:google-java-format from 1.15.0 to 1.16.0 (#β2928)
- Bump io.github.gradle-nexus:publish-plugin from 1.1.0 to 1.2.0 (#β2924)
- Feature 2921 generic types (#β2923)
- Bump com.github.ben-manes.versions from 0.45.0 to 0.46.0 (#β2922)
- Use generic type information in TypeBasedCandidateFilter to circumvent type erasure (#β2921)
- Make project relocatable by using relative paths in the OSGi test task (#β2920)
- Cache misses due to OSGi tests referencing absolute paths (#β2919)
- Bump versions.bytebuddy from 1.13.0 to 1.14.0 (#β2918)
- Bump gradle/wrapper-validation-action from 1.0.5 to 1.0.6 (#β2917)
- Bump com.diffplug.spotless from 6.14.1 to 6.15.0 (#β2913)
- Bump versions.bytebuddy from 1.12.23 to 1.13.0 (#β2912)
- Bump ru.vyarus.animalsniffer from 1.6.0 to 1.7.0 (#β2911)
- Bump org.codehaus.groovy:groovy from 3.0.14 to 3.0.15 (#β2910)
- Fixes #β2905 : ThreadLocal classes can be mocked. (#β2908)
- StackOverflow while mocking a ThreadLocal on Mockito 5.1.1 (#β2905)
- Fix most Gradle warnings in build (#β2904)
- Android CI improvements, improves #β2892 (#β2903)
- Bump com.diffplug.spotless from 6.14.0 to 6.14.1 (#β2902)
- Bump versions.bytebuddy from 1.12.22 to 1.12.23 (#β2901)
- CI on Android API level 33 for Java 11 compatibility testing (#β2899)
- Bump kotlinVersion from 1.8.0 to 1.8.10 (#β2897)
- Bump com.github.ben-manes.versions from 0.44.0 to 0.45.0 (#β2895)
- Simplify and modernize Android Test module. (#β2894)
- Set up Android Github Action pipeline. Fixes #β2892 (#β2893)
v5.1.1
Changelog generated by Shipkit Changelog Gradle Plugin
5.1.1
- 2023-01-30 - 1 commit(s) by Andriy Redko
- StackWalker.Option not found on Mockito 5.1.0 (#β2891)
- StackWalker.Option not found on Mockito 5.1.0 (#β2890)
v5.1.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.1.0
- 2023-01-29 - 12 commit(s) by Andriy Redko, Ashley, RΓ³bert Papp, Stephan Schroevers, Tim te Beek, dependabot[bot]
- Fixes some mistakes and missing details in documentation (#β2889)
- Bump com.diffplug.spotless from 6.13.0 to 6.14.0 (#β2888)
- Clean up JDK-8 related code (#β2883)
- Feat: reified mock overloads (#β2882)
- Clean up JDK-8 related code (#β2879)
- Bump assertj-core from 3.24.1 to 3.24.2 (#β2875)
- Make sure the tests use mock maker with intended member accessor (#β2872)
- Bump com.diffplug.spotless from 6.12.1 to 6.13.0 (#β2871)
- Remove broken link from
CONTRIBUTING.md(#β2870) - Update outdated badge 3.x to 5.x (#β2869)
- Broken link in
CONTRIBUTING.md(#β2868) - Set current version to 5.x in README and highlight changes (#β2867)
- Annotate
Mockito#{mock,spy}(T... reified)with@SafeVarargs(#β2866) - Make sure the tests use mock maker with intended member accessor (#β2855)
- Improve examples for InOrder (#β2843)
v5.0.0
Mockito 5: prepare for future JDK versions
For a while now, we have seen an increase in problems/incompatibilities with recent versions of the JDK due to our usage of JVM-internal API. Most notably, JDK 17 made some changes which are incompatible with the current subclass mockmaker. Therefore, to prepare for the future of JDK, we are making some core changes to ensure Mockito keeps on working.
Switch the default mockmaker to mockito-inline
Back in Mockito 2.7.6, we published a new mockmaker based on the "inline bytecode" principle. This mockmaker creates mocks manipulating bytecode equivalent within the original class such that its method implementations hook into the normal Mockito machinery. As a comparison, the subclass mockmaker generates "real" subclasses for mocks, to mimic the same behavior. While the approaches are similar, the inline mockmaker avoids certain restrictions that the JDK imposes. For example, it does not violate module boundaries (introduced in JDK 9, but more heavily used in JDK 17) and avoids the leaking of the creation of the subclass.
Massive thanks to community member @βreta who implemented this change.
Note: this does not affect mockito-android nor testing on Android.
When should I still be using the subclass mockmaker?
There are legitimate remaining use cases for the subclass mockmaker. For example, on the Graal VM's native image, the inline mockmaker will not work and the subclass mockmaker is the appropriate choice. Additionally, if you would like to avoid mocking final classes, using the subclass mockmaker is a possibibility. Note however that if you solely want to use the subclass mockmaker to avoid mocking final, you will run into the above mentioned issues on JDK 17+. We want to leave this choice up to our users, which is why we will keep on supporting the subclass mockmaker.
If you want to use the subclass mockmaker instead, you can use the new mockito-subclass artifact (published on Maven Central along with all our other artifacts).
Update the minimum supported Java version to 11
Mockito 4 supports Java 8 and above.
Similar to other open source projects, we are moving away from JDK 8 and to newer versions.
The primary reason for moving away from JDK 8 is the increasing maintenance costs with keeping our own infrastructure working.
Lately we have been running into more and more JDK 8 breakages.
Additionally, while we want to support the newest JDK API's, our current solution to support both JDK 8 and newer versions causes issues with the SecurityManager.
Since we want Mockito to work on the newest version and more and more businesses adopting JDK 11, we have decided to make the switch as well.
Massive thanks to community member @βreta who implemented this change.
What should I do if I still run JDK 8?
For JDK 8 and below, you can keep on using Mockito 4. This is similar to if you are using JDK 6, for which you can keep on using Mockito 2. The changes in Mockito 5 (for now) are primarily focused on the latest JDK versions, which means the API differences between Mockito 4 and 5 are minimal. However, over time this will most likely widen, so we do recommend adopting JDK 11 in the future.
New type() method on ArgumentMatcher
One of our most used public API's for customizing Mockito is the ArgumentMatcher interface.
The interface allows you to define a custom matcher, which you can pass into method arguments to provide more targeted matches.
One major shortcoming of the ArgumentMatcher was the lack of varargs support.
There were many, many issues filed related to varargs and Mockito unable to handle them.
Community member @βbig-andy-coates put in a lot of effort to come up with an appropriate solution, including fully implementing and comparing 2 approaches.
Ultimately, we decided that introducing a new type() method on ArgumentMatcher is the best solution.
As a result, it is now possible to update your custom matchers to implement varargs support, if you so desire.
Note that ArgumentMatcher is still a @FunctionalInterface and can therefore still be written as a lambda.
Massive thanks to community member @βbig-andy-coates who implemented this change.
What is the effect of this new method?
For varargs methods, there was previously a way to only match zero arguments, or two or more arguments, by using the exact number of matchers, i.e.
long call(String... args);
// Will match calls with exactly zero arguments:
when(mock.call()).thenReturn(0L);
// Will match calls with exactly two arguments:
when(mock.call(any(), any())).thenReturn(0L);
But following the pattern to match exactly one argument:
when(mock.call(any())).thenReturn(0L);
doesn't work, as any is "vararg aware", so Mockito matched the any against each element of the varargs parameter, meaning it will match any number of arguments, i.e. the above would of matched all of these:
mock.call();
mock.call("a");
mock.call("a", "b");
With the new type method, it's now possible to differentiate matching calls with any exact number of arguments, or to match any number of arguments.
// Match any number of arguments:
when(mock.call(any(String[].class))).thenReturn(1L);
// Match invocations with no arguments:
when(mock.call()).thenReturn(1L);
// Match invocations with exactly one argument:
when(mock.call(any())).thenReturn(1L);
// Alternative to match invocations with exactly one argument:
when(mock.call(any(String.class))).thenReturn(1L);
// Match invocations with exactly two arguments:
when(mock.call(any(), any())).thenReturn(1L);
Therefore, if you want to match 0 or more arguments, use any(String[].class).
If you want to match an exact number of arguments, use any(String.class) (and specify as many any matchers as arguments you want to match on).
In a similar fashion, the behavior of ArgumentCaptor.forClass has changed as well.
If you want to capture all arguments, use an ArgumentCaptor for String[], otherwise String:
// Will capture 1 string
@​Captor private ArgumentCaptor<String> captor;
// Will capture all strings
@​Captor private ArgumentCaptor<String[]> captor;
For more information, see the description and conversation in pull request 2835 and pull request 2807.
At the same time, ArgumentCaptor is now fully type-aware.
This allows for capturing specific subclasses on a generic method:
// Given:
int simpleMethod(Collection<?> arg);
// When:
mock.simpleMethod(Set.of());
mock.simpleMethod(List.of());
// Then:
ArgumentCaptor<Collection<?>> captor = ArgumentCaptor.forClass(List.class);
verify(mock).simpleMethod(captor.capture());
assertThat(captor.getAllValues()).containsExactly(List.of());
Do I need to implement this new method?
No, you don't need to.
Mockito 5 declares a default implementation, returning Void.type as the type of an ArgumentMatcher.
This essentially means that Mockito will not consider the type when handling varargs.
However, if you do return a specific type, Mockito will consider this when matching arguments.
As a result, this new method is not a source-breaking change, but is a bytecode-breaking change.
All code working on Mockito 4 should work as-is when recompiled with Mockito 5.
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about these updates again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
β Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
β» Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: build.gradle
Command failed: ./gradlew --console=plain --dependency-verification lenient -q --write-verification-metadata sha256,pgp help
FAILURE: Build completed with 3 failures.
1: Task failed with an exception.
-----------
* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at '/tmp/renovate/repos/github/nextcloud/android/local.properties'.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
==============================================================================
2: Task failed with an exception.
-----------
* What went wrong:
Failed to query the value of property 'buildFlowServiceProperty'.
> Could not isolate value org.jetbrains.kotlin.gradle.plugin.statistics.BuildFlowService$Parameters_Decorated@7dac0107 of type BuildFlowService.Parameters
> A problem occurred configuring project ':app'.
> SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at '/tmp/renovate/repos/github/nextcloud/android/local.properties'.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
==============================================================================
3: Task failed with an exception.
-----------
* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.dir path in your project's local properties file at '/tmp/renovate/repos/github/nextcloud/android/local.properties'.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
==============================================================================
BUILD FAILED in 2m 23s
Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
β Warning: custom changes will be lost.
test-Unit test failed: https://www.kaminsky.me/nc-dev/android-integrationTests/12501-Unit-test-16-21
APK file: https://www.kaminsky.me/nc-dev/android-artifacts/12501.apk
To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud app.
Codacy
Lint
| Type | master | PR |
| Warnings | 71 | 71 |
| Errors | 3 | 3 |
SpotBugs
| Category | Base | New |
|---|---|---|
| Bad practice | 67 | 67 |
| Correctness | 68 | 68 |
| Dodgy code | 350 | 350 |
| Experimental | 1 | 1 |
| Internationalization | 7 | 7 |
| Malicious code vulnerability | 2 | 2 |
| Multithreaded correctness | 6 | 6 |
| Performance | 58 | 58 |
| Security | 19 | 19 |
| Total | 578 | 578 |
test-Unit test failed: https://www.kaminsky.me/nc-dev/android-integrationTests/12501-Unit-test-21-14
Codacy
Lint
| Type | master | PR |
| Warnings | 62 | 62 |
| Errors | 3 | 3 |
SpotBugs
| Category | Base | New |
|---|---|---|
| Bad practice | 63 | 63 |
| Correctness | 63 | 63 |
| Dodgy code | 306 | 306 |
| Experimental | 1 | 1 |
| Internationalization | 7 | 7 |
| Multithreaded correctness | 6 | 6 |
| Performance | 52 | 52 |
| Security | 18 | 18 |
| Total | 516 | 516 |
APK file: https://www.kaminsky.me/nc-dev/android-artifacts/12501.apk
To test this change/fix you can simply download above APK file and install and test it in parallel to your existing Nextcloud app.
blue-Light-Screenshot test failed: https://www.kaminsky.me/nc-dev/android-integrationTests/12501-Screenshot-blue-Light-21-26