easy_mock_channel 0.1.0 copy "easy_mock_channel: ^0.1.0" to clipboard
easy_mock_channel: ^0.1.0 copied to clipboard

Fluent MethodChannel mocking for Flutter tests. Stub platform-channel calls with when, match arguments by deep equality, and assert with verify — the mock handler installs immediately and is removed o [...]

easy_mock_channel #

Fluent MethodChannel mocking for Flutter tests — the same when / verify ergonomics as a request mock, but for platform channels. It stubs the channel at the binary-messenger seam (setMockMethodCallHandler), so the real plugin Dart code runs and only the native side is faked.

Usage #

import 'package:easy_mock_channel/easy_mock_channel.dart';

testWidgets('camera permission is denied', (tester) async {
  final channel = mockChannel('flutter.baseflow.com/permissions/methods')
    ..when(method: 'requestPermissions', returns: {1: 0}); // {camera: denied}

  // ... drive the code under test that calls Permission.camera.request() ...

  expect(channel.verify(method: 'requestPermissions').length, 1);
});
  • mockChannel(name) installs the handler immediately and removes it on test teardown.
  • when({required method, arguments, returns, throws}) — reply with returns, or throw throws (e.g. a PlatformException). Supply arguments to match only calls whose arguments deep-equal it; omit it to match any. Later stubs win.
  • verify({required method}) returns the recorded MethodCalls for that method; calls is the full ordered list.

return is a reserved word in Dart, so the parameter is named returns.

Notes #

  • Requires the Flutter test binding (use inside testWidgets, or call TestWidgetsFlutterBinding.ensureInitialized() in a plain test).
  • VM/widget tests only — it mocks the channel, it does not talk to a device.
0
likes
140
points
119
downloads

Documentation

API reference

Publisher

verified publisherahmedomar.com.ly

Weekly Downloads

Fluent MethodChannel mocking for Flutter tests. Stub platform-channel calls with when, match arguments by deep equality, and assert with verify — the mock handler installs immediately and is removed on teardown. Also ships a guard that fails a test when the app calls an unmocked platform channel, naming the channel, method, and call site instead of hanging.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, flutter_test, stack_trace

More

Packages that depend on easy_mock_channel