Comments (5)
Implemented in V7.6.8
from get_it.
why not just registering in setup?
from get_it.
Also ignoreReassignment
could be marked as @visibleForTesting
.
why not just registering in setup?
I have a setup function the runs at the beginning, but I want to reassign one of the singletons being created there. The only way I have is verbose, I need to pass nullable instances to setup, so I can verify if they are null or not. If they are not null, I use them, so this is how we can inject fake instances for tests. This very verbose and could be immensely simplified if we had a ignoreReassignmentForTesting
.
Here's an example of what I have to do now:
@override
Future<void> setup({
Dio? dio,
ExampleRestDataSource? exampleRestDataSource,
PackageInfo? packageInfo,
ExampleRepository? ExampleRepository,
ExampleCubit? ExampleCubit,
}) async {
getIt
..registerSingleton(dio ?? Dio())
..registerSingleton(exampleRestDataSource ?? ExampleRestDataSource(getIt()))
..registerSingleton(packageInfo ?? await PackageInfo.fromPlatform())
..registerSingleton(exampleRepository ??
ExampleRepository(
exampleRestDataSource: getIt(),
packageInfo: getIt(),
))
..registerSingleton(exampleCubit ?? ExampleCubit(exampleRepository: getIt()));
}
from get_it.
why not just registering in setup?
Because that yields the same result as what I outlined above. If I moveGetIt.I.registerSingleton<IFoo>(FakeFoo());
into setup
, the test is still going to blow up when I call app.startup
because startup registers RealFoo
. Right now we have to have suboptimal code in our production code so that we can conditionally register dependencies based on whether we're testing or not.
from get_it.
OK, I think I finally understood this issue the first time, my bad. We probably should call the option something like skipDoubleRegistrations
from get_it.
Related Issues (20)
- Async factorties should have a `dependsOn` HOT 20
- `registerLazySingletonAsync` not working with `dependsOn` HOT 3
- Add new type of scope that is independ of the scope stack HOT 1
- Build error in version 7.6.1 HOT 7
- unlisted from pub.dev? HOT 4
- Null check operator used on a null value with allReady on hot refresh HOT 2
- Can't register AutoRoute v6 with GetIt HOT 2
- Bad state: GetIt: Object/factory with type AdviceRepoImpl is not registered inside GetIt. HOT 1
- Check implementation of `WillSignalReady` on subclasses HOT 1
- Collections Multibinding HOT 5
- Questions about the registerFactory HOT 2
- Error on example code for addListener HOT 10
- Concerns about Get_It HOT 4
- Need Help: Dependency Problem with GetIt in vm:entry-point Pragma HOT 1
- `unregister<T>` unregisters all services of type `T` HOT 9
- Webview shows blank untill the app is sent to background and brought forward again ... HOT 1
- trying to upgarde the package to 7.6.9 HOT 9
- Make pushing a new scope atomic. HOT 2
- Get it problem HOT 1
- [feature request] `registerCachedInstance`? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from get_it.