V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
walkingway
V2EX  ›  Node.js

Koa2 的 app.js 里写的分支单元测试怎么覆盖?

  •  
  •   walkingway · 2019-08-07 22:51:56 +08:00 · 4753 次点击
    这是一个创建于 1967 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为项目需要,在 app.js 一开始就动态加载了某个确定的 env 变量,并根据这些变量值通过 if else 选择要 app.use(...) 的不同中间件,问题来了:
    在写单元测试时,无法有效覆盖到所有 if else 分支,毕竟环境变量在很早的时候就已经加载,app.js 也早于 unit test 加载。这就是说我跑单元测试的时候,app.js 早就以某种特定的 env 跑完了所有逻辑。

    那么有没有办法,在单元测试时修改 env 重新加载 app.js 呢?
    5 条回复    2019-09-04 16:26:18 +08:00
    libook
        1
    libook  
       2019-08-08 01:34:20 +08:00 via Android
    由测试框架按需控制服务的启动和停止,让服务成为测试框架的子进程。
    Hanggi
        2
    Hanggi  
       2019-08-08 10:18:51 +08:00
    stub
    del1214
        3
    del1214  
       2019-08-08 11:19:45 +08:00
    战略关注一下
    twohappy
        4
    twohappy  
       2019-08-09 12:32:04 +08:00
    战略插眼
    TomVista
        5
    TomVista  
       2019-09-04 16:26:18 +08:00
    插眼
    await exc('npm start && setModel ='test'')
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1039 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:56 · PVG 03:56 · LAX 11:56 · JFK 14:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.