Я пишу макет для модуля node-redis и использую Jasmine для его проверки.Я пишу тесты для различных аспектов команд Redis, и я намерен также иметь возможность запускать тесты для исходного модуля Redis.
Моя проблема: , если я правильно понял node-redis возвращаемое значение асинхронных функций node-redis отличается в зависимости от того, была ли команда отправлена в Redis или помещена в очередь для отправки позже (например, для отправки после завершения соединения).Но я также хотел бы проверить возвращаемое значение, и если я напишу тест, такой как приведенный ниже:
it("should update value", function () {
var client = redis.createClient();
client.set("key", "1st");
var value = client.get("key", function (err, data) {
expect(err).toBeNull();
expect(data).toBe("1st");
});
expect(value).toBe(true);
});
, он не пройдет, если я использую настоящий модуль Redis, потому что не будетдостаточно времени для подключения к базе данных.
Есть ли способ ожидания выполнения асинхронного запроса для продолжения тестирования кода?
(Ответы с различными подходами к этой проблеме также приветствуются.)