做个调查,你的 Node 应用有单元测试吗? 问卷地址:https://survey.alibaba.com/survey/4MquTWvvk
开源项目写,公司项目看情况,其他不写。。。
开源项目【想】写,公司项目看情况(目前还没有要求写的),其他不写
就像eslint,之前感觉碍手碍脚的,后来用上了,体会到了,现在感觉不用不舒服。。
test大家都说好,但是现在还没应用上。。。
==============================
好,现在用上了,感受:有点用,找出了不少错误。挺爽的,补测试挺累。。看覆盖率上升很开心
尽量有
最近每天奔走于活动页之间,还要兼容IE7,和 test 有毛线的关系
所有项目都有。开源项目追求100%的覆盖度。公司项目测试覆盖度维持在 70% 左右。
开源项目,公司的底层项目写,其他的看情况
极其重要的项目有,和安全有关的项目有,其他没有。
看到你们这么说,我就放心了。
有
看到你们这么说,我就放心了。
看到你们这么说,我就放心了。
看到你们这么说,我就及其放心了。
要求项目必须写,关注覆盖率,但不搞 TDD。
看到你们这么说我就放心了
想请教一个问题,单元测试,是针对重要的核心无状态模块以及核心有状态的模块打 mock 后做覆盖率测试就可以,还是一定要包含所有的涉及到的代码呢,比如项目的 http 启动服务入口这样的?
基本不寫,自己開心就好
底层跟重要的业务逻辑写,普通的不写。
基本不写
看到你们这么说,我就及其放心了。
单人作战的我,不写,不会写,找时间体会一下
部分有,但是单元测试还是覆盖不到每一行代码
用egg做的公司单点登陆,怕有意外,单测覆盖率80%以上。
公司java有70+人,对node做公司单点登陆一直耿耿于怀,自己则对所有质量环节,特别不敢怠慢。
BTW,没有强类型,nodejs在企业级应用中确实比较累,很容易出现低级错误。。
@johnnychen 别怕。java 问题同样很多。主要看人的能力,而不是人数。。。。而且出了问题,java 更加难以搞定
好像有人说过,强类型并不能使错误减少
写呀,单元测试是个好习惯。
@zhanzhenzhen 逻辑问题那肯定一样了 但传参这里的问题可以规避,更具有规范 所以弱类型高手适合写,强类型适合菜鸟历练,哈哈 同理,写弱类型的不一定是大神,写强类型的也不一定是菜鸟 自认代码一流的我,当然是学弱类型啦!😚 这样束缚少了,写代码快一些 来自酷炫的 CNodeMD
写什么写
看到你们这么说,我就放心了。我刚准备学习单元呢 哈哈
@johnnychen 上TS可以极大提升效率
开源的尽量写。公司项目遇上赶工的。。。
lz,egg啥时候改为ts呢。我计划让egg-bin支持win32平台部署
没有写,开源项目也没写 - -。。。。。。 所以说我 star 很少
@waitingsong egg 本身暂时没计划,应用的话现在就可以用 TS 了啊,蚂蚁那边都是 TS 写 egg 业务应用的。
egg-bin 一直有支持 win 的,就是 egg-scripts 不支持而已(进程判断麻烦,而且部署都是在 linux,就懒的搞)
看到你们这么说,我就及其放心了。
我也放心了
公司的项目主要做Api,这种项目单元测试的意义不大,入参校验严格处理就可以。 看了这么多我也放心了
@atian25 我这儿有部署win32的需求。在写外围插件控制窗口以及获取进程
@waitingsong 那你写个 cli 继承下 egg-scripts 就可以了,我们可以暴露相关接口来覆盖。
@atian25 我计划是用node ffi调用user32.dll来控制窗口以及获取pid。不过就需要安装gyp,这个依赖了一堆 东西,
安装失败率不低。 估计得有个开关来控制是否使用win扩展模式(就是我计划实现的插件)
或者先把.node文件编译好然后直接调用?不知道这个办法是否可行
看到这么多人不写单元测 我也就放心了
我们有单元测试 写个单元测试和写业务代码一样多
用的egg.js 肯定有的
@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 来实现即可。
@atian25 “可以自己写个 cli,继承 egg-scripts 来实现即可。” 你指的是“集成”么?
我写的 win32-api 库是基于node-ffi 调用系统user32.dll等核心链接库,然后封装了一个操作windows窗口的库用于窗口操作:改变窗口title(可用于查找egg-script进程窗口的hWnd以及pid),隐藏窗口等。 详情可见我资料的github地址
单侧只是一种工具。重点的地方是覆盖,覆盖什么(代码行、条件、路径等)、怎么覆盖、怎么检查目标的覆盖率。