У меня есть функция, которая возвращает только когда она произвела 4 syn c вызова пакета FlutterSecureStorage
, что-то вроде этого ниже. Цель состоит в том, чтобы не возвращаться к будущему из метода FlutterSecureStorage
.
@override
Future<void> cacheAuthenticatedUserJWT(authenticateUserModel) async {
return await Future.wait([
flutterSecureStorage.write(
key: CACHED_ACCESS_TOKEN, value: authenticateUserModel.accessToken),
flutterSecureStorage.write(
key: CACHED_REFRESH_TOKEN, value: authenticateUserModel.refreshToken),
flutterSecureStorage.write(
key: CACHED_EXPIRES_IN,
value: authenticateUserModel.expiresIn.toString()),
flutterSecureStorage.write(
key: CACHED_TOKEN_TYPE, value: authenticateUserModel.tokenType),
]);
}
Теперь, когда дело доходит до тестирования, у меня было что-то вроде этого ниже:
test('should store of the tokens into flutter secure storage', () async {
// Mock call of function
dataSource.cacheAuthenticatedUserJWT(tAuthenticatedUserModel);
// Verify all four calls have been made
verify(secureStorage.write(
key: CACHED_ACCESS_TOKEN,
value: tAuthenticatedUserModel.accessToken));
verify(secureStorage.write(
key: CACHED_REFRESH_TOKEN,
value: tAuthenticatedUserModel.refreshToken));
verify(secureStorage.write(
key: CACHED_EXPIRES_IN,
value: tAuthenticatedUserModel.expiresIn.toString()));
verify(secureStorage.write(
key: CACHED_TOKEN_TYPE, value: tAuthenticatedUserModel.tokenType));
});
Это работал, когда у меня не было flutterSecureStorage.write
в ожидании, потому что они ничего не возвращали, однако потом я понял, что не знаю, какую следующую функцию запустить, пока она не будет завершена в классе репозитория, просто чтобы убедиться, что данные установлены когда я делаю HTTP-вызов со связанными Json веб-токенами. Но теперь, поскольку они асин c с Future.wait, как я могу высмеять это в тесте? Есть ли метод c с пакетом test_api
?
Спасибо,