这几天一直在消化你说的这些框架,以及查找资料。
发现很多框架是针对编程语言或程序类型的,web测试工具、框架就比较多。像c++写应用程序好像就不怎么好测试,c++写的服务程序,gui程序等等。如果是针对功能、接口写测试代码,比方说我新加一个接口,可能需要写5个case,但是如果开发人员偷懒或者没想到那种情况,写两三个case,还是会引入bug,那是不是只能边人工测试边加自动化测试得case了。
那些开源项目没有通过自动化测试就不能提交代码是如何做到的呢?
【 在 eGust 的大作中提到: 】
: 大的小的都一样啊,正常都是拿成熟的测试框架直接用啊。
: unittest 是非常成熟的,稍微新点儿的语言都直接自带了,老点儿的也都有主流的包。比如你说的 go 就不算老,直接就能 go test。像 python、ruby 这类脚本语言就算老,加个测试也就一个官方包而已。js 的话,jest 是占主导地位的,还有 mocha 也比较流行。
: 理论也很简单,就是保证每个单元都能单独正常工作,出 bug 就在相关测试里加 case。设计上就是分层,尽量相对独立,可以单独测试。不同层之间 interface 尽量稳定,必要时按照接口 mock 其它层,这样尽量保证每一层的功能稳定。很多静态语言的框架里,有时甚至专门套一层,就是为了方便 mocking,然后就搞成了俄罗斯套娃。
: ...................
--
FROM 124.126.202.*