Нет совпадающих вызовов с проверкой Mockito, несмотря на совпадения вызовов

У меня есть провайдер по имениSqliteFavoriteProviderи у него есть метод с именемadd, это так, как показано:

        @override
  Future<int> add({
    required int startStationId,
    required int endStationId,
    int? dayId,
  }) async {
    // `_database` here will be mocked
    return await _database.insert('favorites', {
      'startStationId': startStationId,
      'endStationId': endStationId,
      'dayId': dayId,
      'lastUpdate': clock.now().toIso8601String(),
    });
  }

Я издеваюсь над ним, используя , и тестирую его следующим образом:

          late FavoriteProvider provider;
    late Database mockDb;

    setupAll(() {
        mockDb = MockDatabase();
        // `mockDb` injected into SqliteFavoriteProvider
        provider = SqliteFavoriteProvider(database: mockDb);
    });

    // ...

    test('-- add (no day)', () {
      withClock(Clock.fixed(DateTime(2023)), () {
        provider.add(startStationId: 1, endStationId: 1);
      });
      verify(
        mockDb.insert(
          'favorites',
          {
            'startStationId': 1,
            'endStationId': 1,
            'dayId': null,
            'lastUpdate': '2023-01-01T00:00:00.0',
          },
          nullColumnHack: null, // doesn't work even if this is absent
          conflictAlgorithm: null, // doesn't work even if this absent
        ),
      );
    });

mockDbявляетсяMockDatabaseэкземпляр, созданныйmockito.

Проблема в том, что тест не дает результатов:

        No matching calls. All calls: MockDatabase.insert('favorites', {startStationId: 1, endStationId: 1, dayId: null, lastUpdate: 2023-01-01T00:00:00.000}, {nullColumnHack: null, conflictAlgorithm: null})
  (If you called `verify(...).called(0);`, please instead use `verifyNever(...);`.)

Однако я называю это с точными параметрами. Есть ли что-то, что мне не хватает?

1 ответ

Вы можете проверить это, используя вызываемый метод следующим образом.

      verify(
    mockDb.insert(
      'favorites',
      {
        'startStationId': 1,
        'endStationId': 1,
        'dayId': null,
        'lastUpdate': '2023-01-01T00:00:00.0',
      },
      nullColumnHack: null, // doesn't work even if this is absent
      conflictAlgorithm: null, // doesn't work even if this absent
    ),
  ).called(1);
Другие вопросы по тегам