-
Notifications
You must be signed in to change notification settings - Fork 163
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
Freezed models can't be mocked without json_serializable #689
Comments
Please create a sample (preferably minimal) project that makes it possible to reproduce the problem. I don't use freezed myself. |
Wow, thanks for discovering this! I can confirm this is a proper albeit dirty solution. For some months now I couldn't regenerate my mocks (and had to update the generated classes manually). I saw that part of the mocks are not generated without json_serializable included. It might have to do with the typedef that I use. I will create an example later today too. |
Here's a simple sample. Notice the different output when json_serializable is included. FWIW: I ran into this issue when trying to update from Mockito 5.2.0 to 5.4.0 |
This may be an ordering issue? I'm not sure why adding an otherwise unrelated builder should force a different ordering, but it could. If I don't think it's sensible to add a It might also work to split the test directory into a separate target which depends on the library target. As long as the |
Yes, this is an ordering issue: without I don't know though, what makes I'll leave to @jakemac53 to comment, what would be possible ways to fix it (except for asking But I have a general question: freezed objects are immutable values with no behavior, why would you even want to mock them? |
We do support a global_options config to affect ordering for a given package (without overriding builder configs), see https://github.com/dart-lang/build/blob/master/docs/faq.md#how-can-i-adjust-builder-ordering |
This is a good point - mocking a data model is not a good practice. |
In my case the classes used to be regular classes which I migrated to immutable freezed classes. The unittests where written for the original classes and didn't need change after this migration, since Mockito generated fine classes up until Mockito 5.2.0. |
I found a very strange behavior of mockito. If you generate a model with the freezed and want to mock it without adding the json_serializable as a dependency, the mocked freezed model is generated as an empty class and cannot be used.
This currently means that you have to add json_serializable as a dependency in a project, even if you don't need the actual package, just to make freezed and mockito work together.
The text was updated successfully, but these errors were encountered: