Запуск юнит-тестов с Isar во Flutter

Как правильно запускать юнит-тесты в Isar? я продолжаю получатьnullдляIsar.getInstance()!не позволяя мне выполнять какие-либо запросы. Отличается ли синтаксис при выполнении тестов от запуска в приложении? В документах нет абсолютно ничего о юнит-тестировании.

      void main() async {
  setUpAll(() async {

    // This is always null
    Isar isar = Isar.getInstance()!;
    print(isar);   // null

  });
  test('', () {
    // Empty
  }, tags: 'service');
}

1 ответ

У меня была та же проблема, и я нашел решение на странице проблем isar на GitHub . 

      void main() {
  late Isar isar;

  final data = [.. users data];

  setUpAll(() async {
    await Isar.initializeIsarCore(download: true);
    isar = await Isar.open([IsarUserSchema]);
    await isar.writeTxn(() async {
      await isar.users.clear();
    });
  });

  tearDownAll(() async {
    await isar.close();
  });

  setUp(() async {
    await isar.writeTxn(() async {
      await isar.users.clear();
    });
  });

  // Test for example
  test('addUsers add N users to DB', () async {
    await isar.writeTxn(() => isar.users.putAll(data));
    final result = await isar.users.count();
    expect(result, data.length);
  });
}
Другие вопросы по тегам