Google cloud pubsub - 为不同的环境关闭 pubsub
Google cloud pubsub - Turning off pubsub for different environments
也许这不是正确的方法(对想法持开放态度),但如果没有必要,我想为某些测试环境关闭 pubsub。
注意:我不是在尝试使用伪造的 pubsub 服务(pubsub 模拟器),但我希望网络应用程序不会 publish/subscribe 任何东西而不检查像 [=12= 这样的标志]无处不在。
我只是想去掉这些方法,所以在 node.js
this.pubsub = new NoOpPubsub();
this.pubsub.topic('my-topic').publisher().publish(my-message); // no-op and no error
有什么想法吗?我做的不好吗?
您正在做的事情听起来像是在实施一个假的(尽管是一个最低限度的功能)。这种方法没有任何问题,尽管我建议如果这些是单元测试使用模拟而不是像 unittest.mock 这样你就可以检查你将要发布到 pubsub 的值是否正确。
如果您正在考虑为长期 运行 环境实施伪造,也许 运行 pubsub emulator 将是最好的举措,因为它会给您一些现实的结果网络请求开销、批处理和其他条件,以及将您的消息传播给同一测试环境中的订阅者。但同样,这在很大程度上是关于什么最适合您的用例的决定。如果您只想测试所有其他缺少 pubsub 的功能,只需使用 NoOp 伪造就可以了。
也许这不是正确的方法(对想法持开放态度),但如果没有必要,我想为某些测试环境关闭 pubsub。
注意:我不是在尝试使用伪造的 pubsub 服务(pubsub 模拟器),但我希望网络应用程序不会 publish/subscribe 任何东西而不检查像 [=12= 这样的标志]无处不在。
我只是想去掉这些方法,所以在 node.js
this.pubsub = new NoOpPubsub();
this.pubsub.topic('my-topic').publisher().publish(my-message); // no-op and no error
有什么想法吗?我做的不好吗?
您正在做的事情听起来像是在实施一个假的(尽管是一个最低限度的功能)。这种方法没有任何问题,尽管我建议如果这些是单元测试使用模拟而不是像 unittest.mock 这样你就可以检查你将要发布到 pubsub 的值是否正确。
如果您正在考虑为长期 运行 环境实施伪造,也许 运行 pubsub emulator 将是最好的举措,因为它会给您一些现实的结果网络请求开销、批处理和其他条件,以及将您的消息传播给同一测试环境中的订阅者。但同样,这在很大程度上是关于什么最适合您的用例的决定。如果您只想测试所有其他缺少 pubsub 的功能,只需使用 NoOp 伪造就可以了。