在学 Flask ,所以想用用自动构建。对于自动构建我不是很了解,想问一下是不是要写测试文件才有用?我无知的想法是认为代码能编译成功就能 pass , 233 。
BTW :还在本科阶段,感觉老师都没提到过单元测试,所以对这块自己也不是很理解。记得看到过一篇文章,说大一老师就强迫要写单元测试了。好像工作中单元测试还挺重要的,希望有大牛能来简单指点一下。问题已自行百度谷歌过,只是想看看 v 友对单元测试是什么理解。
1
janxin 2015-12-01 13:34:53 +08:00 1
对 Python 来说,能跑!=能用,很多动态类型,手误写错了不执行的时候是不知道的。所以, travis-ci 一定要配合测试才能用。
单元测试的理解应该讨论太多了,没啥好说的 |
2
neoblackcap 2015-12-01 15:13:44 +08:00
对所有的程序来说,能跑!=能用。哪怕你写了单元测试,那样一样不能说你写的就是对的,测试还会分单元测试,集成测试。
建议先写单元测试,后面在慢慢上集成测试,同时使用 coverage ,尽量使测试覆盖率到达 100%。 绝对的正确唯有定理证明,将你的需求转换为一个定理,然后编写程序去证明它,若是证明出来了,那么你就不用写什么测试了。你的程序必然是对的,但是这个领域就有点远了。 |
3
msg7086 2015-12-01 16:54:41 +08:00 via Android
还有他的姐妹站 coveralls 呢。
主要就是写 unit tests 和 feature tests ,然后每次你修改代码的时候他都会帮你跑一遍测试,这样容易发现问题。 |
4
gaocegege 2015-12-01 18:44:05 +08:00
其实一直不知道在 travis 上,数据库连接的问题有没有什么 awesome 的解决方法
|
5
mianju OP |
6
msg7086 2015-12-01 21:09:54 +08:00
@gaocegege 你想解决什么问题?
@mianju 去试试测试驱动开发吧。 单元测试一般用来测试组件是否工作正常。比如你写了一个专门处理某个资源的类,那么要确定这个类是否如期工作,一般就用单元测试来保证。单元测试应该是特别简单特别快的,至少是每秒可以跑十几个测试的那种。 集成测试,或者叫 Feature test ,一般用来测试系统的某个功能特性是否正常。比如你网站支持上传文件,那么某个特性测试就是你打开某个页面,点击上传,然后检查页面上是否出现了新上传的文件 —— 当然了,这一切都是自动化完成测试的。 另外,不要太依赖「老师」的知识。大学的实践体系是一个落后严重的体系,因为软件行业发展太迅速,你经常会遇到最近三五年,甚至有时候是最近一两年才出来的新技术新概念,所以还是尽量以自学研究为主吧。 |
7
neoblackcap 2015-12-01 23:34:55 +08:00 via iPhone
@gaocegege 将所有的数据库连接要不 mock 要不 stub
|