Google cloud pubsub - Отключение pubsub для разных сред - PullRequest
0 голосов
/ 18 февраля 2019

Возможно, это неправильный подход (открытый для идей), но я хочу отключить pubsub для некоторых сред тестирования, если в этом нет необходимости.

Примечание. Я не пытаюсь использовать поддельный pubsubслужбы (эмулятор pubsub), но я хочу, чтобы веб-приложение не публиковало / не подписывалось ни на что, не устанавливая флажок, например, isPubsubEnabled везде.

Я думал о том, чтобы просто заглушить методы, поэтому вnode.js

this.pubsub = new NoOpPubsub();
this.pubsub.topic('my-topic').publisher().publish(my-message); // no-op and no error

Есть идеи?Что я делаю плохо?

1 Ответ

0 голосов
/ 18 февраля 2019

То, что вы делаете, звучит как реализация подделки (хотя и с минимальной функциональностью).В этом подходе нет ничего плохого, хотя я бы посоветовал, если это модульные тесты, вместо этого использовать макет, например unittest.mock , чтобы вы могли проверить, верны ли значения, которые вы в противном случае публиковали бы в pubsub.

Если вы планируете реализовать фальшивку для долговременной среды, возможно, лучше всего будет использовать эмулятор pubsub , так как он даст вам несколько реалистичных результатов при накладных расходах на сетевые запросы,пакетирование и другие условия, а также распространение ваших сообщений подписчикам в той же тестовой среде.Но, опять же, это очень большое решение о том, что лучше для вашего варианта использования.Если вы просто хотите протестировать все остальные функциональные возможности, отсутствующие в pubsub, просто подделка NoOp подойдет.

...