Testing
Test Popsicle state with isolated containers and typed overrides.
Testing
Use an isolated PopsicleContainer:
final container = PopsicleContainer();
addTearDown(container.dispose);
final count = container.get(counterValue);
container.update(counterValue, (value) => value + 1);
Store testing:
final store = container.store(counterStore);
store.increment();
expect(container.get(counterStore), 1);
Separate containers isolate scoped reactive values and Store instances.
Overrides
final api = Popsicle.inject((_) => RealApi());
final container = PopsicleContainer(
overrides: [
api.overrideWith((_) => FakeApi()),
],
);
Store handles support the same pattern:
final counter = Popsicle.create((_) => CounterStore(0));
final container = PopsicleContainer(
overrides: [
counter.overrideWith((_) => CounterStore(10)),
],
);