首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟功能切换而不连接暗启动?

如何模拟功能切换而不连接暗启动?
EN

Stack Overflow用户
提问于 2019-06-03 05:45:25
回答 2查看 2.9K关注 0票数 2

我有一个新的代码行,它必须被一个功能按钮包围。因为它是一个服务(Flask应用程序),它在启动时启动它的所有连接和与外部源的相关集成--在执行单元测试时,我没有运行LaunchDarkly的实例。

有没有一种简单的方法来模拟和预定义Python中的单元测试/集成测试的特性切换?我正在使用pytest编写单元测试。

我的代码示例:

代码语言:javascript
复制
if FeatureToggle.is_enabled("my-feature-toggle-name"):
     *my code logic*

is_enabled()方法推动:

代码语言:javascript
复制
@staticmethod
def is_enabled(flag_name: str, user_key: str=None, custom_params: dict=None) -> bool:
    if user_key is None:
        user_key = 'defaut_user_key'

    return FeatureToggle.ld_client.variation(flag_name, {"key": user_key, "custom": custom_params}, False)

在运行应用程序时,FeatureToggle.ld_client是用适当的api键启动的,可以黑暗地启动,然后允许我使用他们的variation()方法。

我知道,当没有is_enabled()实例时,我可以更改我的ld_client方法以返回预定义的值,但我正在寻找更优雅的方法。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-05 11:12:17

因此,在对我的同事进行调查并向他们提供建议之后,可以使用unittest.mock库来完成这一工作。

当我有完整的解决方案时,我会更新答案。

票数 0
EN

Stack Overflow用户

发布于 2019-08-12 02:42:07

我还要补充的是,除了使用模拟库之外,还可以实例化客户机从file1读取,而不是连接到LaunchDarkly API。通过这种方式,您可以有一组预先确定的测试值,可以用于测试目的。

1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56421730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档