Should when() calls have a better error message for not having a following thenAnswer/thenReturn call?
- Lingua principale
- Dart
- Stelle
- 702
- Fork
- 88
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
**Describe the bug**
I ran into an extremely hard to diagnose bug. I wrote some tests and found that they were randomly failing with
````
Bad state: Cannot call `when` within a stub response
````
It was random because depending on if I randomized my tests sometimes the tests would pass or fail.
The reason for this was that on a prior test we had called `when(() => someFunction())` but since the the function returns `Future` I was under the assumption that the return value was unimportant and could be ignored. However, this meant that any subsequent `when` calls errored out, as `_whenCall` (inside `mocktail.dart`) was no longer `null`.
**To Reproduce**
1) Write any `when` call without a `thenAnswer/thenReturn` for a `void`/`Future` function.
2) Write another `when` call for the same mocked class.
**Expected behavior**
Not actually sure. Should `void`/`Future` be allowed by default without a `then`? This doesn't feel quite right. Or should there be a better error message like `Missing then function for when`, or just a hint on the current error message about making sure that your whens have following thens. I could also just be mistaken and there's a good reason for `when()` calls without a following `then`.
**Logs**
````
Bad state: Cannot call `when` within a stub response
package:mocktail/src/mocktail.dart 206:5 when
test/features/notifications/cubits/notification_preferences_cubit_test.dart 303:11 main...
package:bloc_test/src/bloc_test.dart 203:25 testBloc.
===== asynchronous gap ===========================
dart:async _Completer.completeError
package:bloc_test/src/bloc_test.dart 257:43 _runZonedGuarded.
===== asynchronous gap ===========================
dart:async _CustomZone.registerBinaryCallback
package:bloc_test/src/bloc_test.dart 254:5 _runZonedGuarded.
dart:async runZonedGuarded
package:bloc_test/src/bloc_test.dart 253:3 _runZonedGuarded
package:bloc_test/src/bloc_test.dart 200:11 testBloc
package:bloc_test/src/bloc_test.dart 156:13 blocTest.
````
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.