tags: flutter , testing links: Flutter MOC


When using mockito’s when and thenAnswer, In order to get different results, use a list with removeAt(0).

import 'package:test/test.dart';
import 'package:mockito/mockito.dart';
 
void main() {
  test("some string test", () {
    StringProvider strProvider = MockStringProvider();
    var answers = ["hello", "world"];
 
    when(strProvider.randomStr()).thenAnswer((_) => answers.removeAt(0));
 
    expect(strProvider.randomStr(), "hello");
    expect(strProvider.randomStr(), "world");
  });
}
 
class StringProvider {
  String randomStr() => "real implementation";
}
 
class MockStringProvider extends Mock implements StringProvider {}
 

sources: When thenAnswer different results