Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix unmockkAll to work if constructor was mocked multiple times #870

Merged
merged 2 commits into from Jul 29, 2022

Conversation

Chrostoq
Copy link
Contributor

Hi all!

This PR is to fix the Issue #838

I changed internalMockkConstructor to work like internalMockkObject and internalMockkStatic by changing it to use cancelPut

I added a new test but I had to remove test2.
I'm unsure what exactly they test, but with my change the mocked instance in ExampleObject private val exampleClass is reset once mockkConstructor is called again in test2. And since it's in an object which is not reset between test1 and test2, test2 fails because it is not re-instantiated with the mocked class.

@Raibaz
Copy link
Collaborator

Raibaz commented Jul 29, 2022

Thanks a lot for putting this together!

The code LGTM, can you just add some test coverage for cases when constructedWith is used?

I think that may interfere with constructor mocking behavior as well and we may want to test that constructedWith can be invoked several times and work correctly, both with and without using unmockkAll in between.

Thanks again!

@Chrostoq
Copy link
Contributor Author

Hi @Raibaz

I updated it to include some testing for constructedWith as requested

@Raibaz Raibaz merged commit 96d3b93 into mockk:master Jul 29, 2022
@Raibaz
Copy link
Collaborator

Raibaz commented Jul 29, 2022

Thanks a lot!

@Chrostoq Chrostoq deleted the unmockall_issue branch July 30, 2022 08:49
kodiakhq bot pushed a commit to RBusarow/Dispatch that referenced this pull request Aug 23, 2022
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [io.mockk:mockk](https://mockk.io) ([source](https://togithub.com/mockk/mockk)) | `1.12.5` -> `1.12.7` | [![age](https://badges.renovateapi.com/packages/maven/io.mockk:mockk/1.12.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/io.mockk:mockk/1.12.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/io.mockk:mockk/1.12.7/compatibility-slim/1.12.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/io.mockk:mockk/1.12.7/confidence-slim/1.12.5)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>mockk/mockk</summary>

### [`v1.12.7`](https://togithub.com/mockk/mockk/releases/tag/1.12.7)

[Compare Source](https://togithub.com/mockk/mockk/compare/1.12.6...1.12.7)

#### What's Changed

-   Update android-sdk-detector.settings.gradle.kts by [@&#8203;aSemy](https://togithub.com/aSemy) in [mockk/mockk#886
-   only sign if the signing properties are present by [@&#8203;aSemy](https://togithub.com/aSemy) in [mockk/mockk#885
-   Fix an issue that Android libraries was not published by [@&#8203;kubode](https://togithub.com/kubode) in [mockk/mockk#887

#### New Contributors

-   [@&#8203;kubode](https://togithub.com/kubode) made their first contribution in [mockk/mockk#887

**Full Changelog**: mockk/mockk@1.12.6...1.12.7

### [`v1.12.6`](https://togithub.com/mockk/mockk/releases/tag/1.12.6)

[Compare Source](https://togithub.com/mockk/mockk/compare/1.12.5...1.12.6)

#### What's Changed

-   Dependency updates, JDK17 v2 by [@&#8203;aSemy](https://togithub.com/aSemy) in [mockk/mockk#863
-   Dependency updates, JDK17 by [@&#8203;hduerkop](https://togithub.com/hduerkop) in [mockk/mockk#829
-   Fix unmockkAll to work if constructor was mocked multiple times by [@&#8203;Chrostoq](https://togithub.com/Chrostoq) in [mockk/mockk#870
-   fix: fix value class field determination by [@&#8203;qoomon](https://togithub.com/qoomon) in [mockk/mockk#872
-   [#&#8203;854](https://togithub.com/mockk/mockk/issues/854) update projects to use new Kotlin Multiplatform Gradle plugin by [@&#8203;aSemy](https://togithub.com/aSemy) in [mockk/mockk#855

#### New Contributors

-   [@&#8203;hduerkop](https://togithub.com/hduerkop) made their first contribution in [mockk/mockk#829
-   [@&#8203;Chrostoq](https://togithub.com/Chrostoq) made their first contribution in [mockk/mockk#870

**Full Changelog**: mockk/mockk@1.12.5...1.12.6

</details>

---

### 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**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/RBusarow/Dispatch).



PR-URL: #564
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants