Skip to main content

pass-mock-object

effort: 2m
pro+

Warns when verify, verifyNever, when or other similar invocations receive a regular object instead of a mock.

Such invocations must only be given a Mock object.

Example

❌ Bad:

void main() {
test('some test', () {
final instance = SomeClass();

// LINT: This invocation must only be given a Mock object.
// Try passing an object that extends Mock.
when(() => instance.value);
// LINT: This invocation must only be given a Mock object.
// Try passing an object that extends Mock.
verify(() => instance.value);
// LINT: This invocation must only be given a Mock object.
// Try passing an object that extends Mock.
verifyZeroInteractions(instance);
});
}

class SomeClass {
String? value;
}

✅ Good:

void main() {
test('some test', () {
final mock = _SomeMock();

when(() => mock.value);
verify(() => mock.value);
verifyZeroInteractions(mock);
});
}

class _SomeMock extends Mock implements SomeClass {}