mockable_gen 0.2.0
mockable_gen: ^0.2.0 copied to clipboard
Build_runner generator that emits .mock.g.dart files with realistic XxxMock.mock() / XxxMock.mockList(n) factories for classes annotated with @Mockable() from package:mockable.
0.2.0 #
- Auto-mock unannotated nested model types. When an
@Mockable()class has a field whose type is itself a model class without@Mockable()and without a hand-writtenXxxMockextension, the generator now emits a private_$mockXxx()helper in the same.mock.g.dartfile and references it from the parent's factory — instead of emitting a brokenXxxMock.mock()call. - Helpers are dedup'd by type name within each output file, so referencing the same nested type from multiple fields produces a single helper.
- Recursion is depth-unbounded but cycle-safe: A → B → A reuses the existing
cycle fallback (
.empty()constructor if present, elsenullfor nullable fields, else a default constructor call). - Resolution priority for nested model types:
@Mockable-annotated > existingXxxMockextension > generated_$mockXxx()helper.
0.1.0 #
- Initial release.
build_runnergenerator emitsxxx.mock.g.dartpart files for classes annotated with@Mockable()frompackage:mockable.- Field-name heuristics for
email/phone/name/id/url/description/date/address/code/ currency-shaped fields. - Type-based fallback for
String,int,double,bool,DateTime, enums,List<T>,Map<K, V>, and nested@Mockable-annotated models. - Cycle detection with fallback to
.empty()factories when present. - Skips classes whose
XxxMockextension is already hand-written. - Honors
@MockableIgnore()on parameters and fields (initializing-formal aware). - Generic classes and missing constructors are skipped with a log message.