Popsiclev2.1.0
GitHub ↗
Popsicle docs · 2.1.0

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)),
  ],
);