做个调查,你的 Node 应用有单元测试吗?
 发布于 8 年前  作者 atian25  12187 次预览  最后一次回复是 6 年前  来自 分享 

做个调查,你的 Node 应用有单元测试吗? 问卷地址:https://survey.alibaba.com/survey/4MquTWvvk

51 回复
i5ting

开源项目写,公司项目看情况,其他不写。。。

AnzerWall

开源项目【想】写,公司项目看情况(目前还没有要求写的),其他不写

就像eslint,之前感觉碍手碍脚的,后来用上了,体会到了,现在感觉不用不舒服。。

test大家都说好,但是现在还没应用上。。。

==============================

好,现在用上了,感受:有点用,找出了不少错误。挺爽的,补测试挺累。。看覆盖率上升很开心

DevinXian

最近每天奔走于活动页之间,还要兼容IE7,和 test 有毛线的关系

stonephp

所有项目都有。开源项目追求100%的覆盖度。公司项目测试覆盖度维持在 70% 左右。

baka397

开源项目,公司的底层项目写,其他的看情况

zhanzhenzhen

极其重要的项目有,和安全有关的项目有,其他没有。

lwxyfer

看到你们这么说,我就放心了。

nnliang

看到你们这么说,我就放心了。

bergwhite

看到你们这么说,我就放心了。

Dengshen

看到你们这么说,我就及其放心了。

pinxue

要求项目必须写,关注覆盖率,但不搞 TDD。

CNBlackJ

看到你们这么说我就放心了

hyj1991

想请教一个问题,单元测试,是针对重要的核心无状态模块以及核心有状态的模块打 mock 后做覆盖率测试就可以,还是一定要包含所有的涉及到的代码呢,比如项目的 http 启动服务入口这样的?

captainblue2013

基本不寫,自己開心就好

wbget

底层跟重要的业务逻辑写,普通的不写。

151263

看到你们这么说,我就及其放心了。

lzszone

单人作战的我,不写,不会写,找时间体会一下

zdying

公司的项目基本没人写。大多忙于业务、上线。 自己的开源项目,那肯定是要写的,没有测试谁敢用!

cctv1005s

部分有,但是单元测试还是覆盖不到每一行代码

johnnychen

用egg做的公司单点登陆,怕有意外,单测覆盖率80%以上。

公司java有70+人,对node做公司单点登陆一直耿耿于怀,自己则对所有质量环节,特别不敢怠慢。

BTW,没有强类型,nodejs在企业级应用中确实比较累,很容易出现低级错误。。

cnlile

@johnnychen 别怕。java 问题同样很多。主要看人的能力,而不是人数。。。。而且出了问题,java 更加难以搞定

zhanzhenzhen

好像有人说过,强类型并不能使错误减少

hopperhuang

写呀,单元测试是个好习惯。

zy445566

@zhanzhenzhen 逻辑问题那肯定一样了 但传参这里的问题可以规避,更具有规范 所以弱类型高手适合写,强类型适合菜鸟历练,哈哈 同理,写弱类型的不一定是大神,写强类型的也不一定是菜鸟 自认代码一流的我,当然是学弱类型啦!😚 这样束缚少了,写代码快一些 来自酷炫的 CNodeMD

dengnan123

看到你们这么说,我就放心了。我刚准备学习单元呢 哈哈

waitingsong

@johnnychen 上TS可以极大提升效率

waitingsong

开源的尽量写。公司项目遇上赶工的。。。

lz,egg啥时候改为ts呢。我计划让egg-bin支持win32平台部署

liangtongzhuo

没有写,开源项目也没写 - -。。。。。。 所以说我 star 很少

atian25

@waitingsong egg 本身暂时没计划,应用的话现在就可以用 TS 了啊,蚂蚁那边都是 TS 写 egg 业务应用的。

egg-bin 一直有支持 win 的,就是 egg-scripts 不支持而已(进程判断麻烦,而且部署都是在 linux,就懒的搞)

Mrlyjoutlook

看到你们这么说,我就及其放心了。

QLLNNH

公司的项目主要做Api,这种项目单元测试的意义不大,入参校验严格处理就可以。 看了这么多我也放心了

waitingsong

@atian25 我这儿有部署win32的需求。在写外围插件控制窗口以及获取进程

atian25

@waitingsong 那你写个 cli 继承下 egg-scripts 就可以了,我们可以暴露相关接口来覆盖。

waitingsong

@atian25 我计划是用node ffi调用user32.dll来控制窗口以及获取pid。不过就需要安装gyp,这个依赖了一堆 东西,
安装失败率不低。 估计得有个开关来控制是否使用win扩展模式(就是我计划实现的插件)

waitingsong

或者先把.node文件编译好然后直接调用?不知道这个办法是否可行

stormslowly

看到这么多人不写单元测 我也就放心了

hewentaowx

我们有单元测试 写个单元测试和写业务代码一样多

lpbird

用的egg.js 肯定有的

atian25

@waitingsong 之前我试过用 https://www.npmjs.com/package/find-process 这个库来处理 pid,但在某些 win 上有兼容性问题,所以后面也懒得搞了。

目前 npm 上支持 win process 的库,要不就是跟上面那样,用 WMIC path win32_process 要不就是用 Native C 来写。

而后者会导致平台安装兼容性之类的问题,所以评估之后,egg-scripts 官方暂时不打算支持 Windows。

你这边业务有需要的话,可以自己写个 cli,继承 egg-scripts 来实现即可。

waitingsong

@atian25 “可以自己写个 cli,继承 egg-scripts 来实现即可。” 你指的是“集成”么?

我写的 win32-api 库是基于node-ffi 调用系统user32.dll等核心链接库,然后封装了一个操作windows窗口的库用于窗口操作:改变窗口title(可用于查找egg-script进程窗口的hWnd以及pid),隐藏窗口等。 详情可见我资料的github地址

lellansin

单侧只是一种工具。重点的地方是覆盖,覆盖什么(代码行、条件、路径等)、怎么覆盖、怎么检查目标的覆盖率。

x-cold

写单元测试有助于信心提升啊~ 说实话egg的单测体验还是很好的~

mosaic101

部署在硬件上的项目写了(为了稳定性),放在云服务上的项目基本上没写

dong894

单元测试必须要写,而且eggjs的测试用起来很方便的。

holyselina

我们公司的测试都是产品去点的,哈哈

GSZS

看到你们这么说,我就放心了