锁定老帖子 主题:如何推广前端单元测试
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-24
amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? |
|
返回顶楼 | |
发表时间:2008-08-24
gigix 写道 amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? 我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题. |
|
返回顶楼 | |
发表时间:2008-08-24
tommychang 写道 gigix 写道 amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? 我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题. 如果一个私有函数有复杂的逻辑以至于需要对它测试 就应该把这段逻辑抽取到一个单独的对象中 (估计又有人要说,做不到啊,太理想化了啊。这次我不再跟了,做不到就做不到吧。) |
|
返回顶楼 | |
发表时间:2008-08-24
gigix 写道 amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? 呵。。。比方说业务部分的逻辑测试需要基础数据的初始化,每一部分的业务逻辑在各个时期(业务变化)所需要的基础数据不一致。开始的时候当然希望是公用,也就是初始化好一份,大家一起用。但是,慢慢地公用数据的维护将变得越来越困难。最后,程序员们,干脆自己写一份初始化数据给自己的测试用例跑(私用)。真正重视测试的项目或者公司,肯定遇到过此类问题。 |
|
返回顶楼 | |
发表时间:2008-08-24
tommychang 写道 gigix 写道 amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? 我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题. 私有函数,说实话,如果纯粹是考虑安全而做成私有,大可不必。大多数情况下,所谓的安全性和可测试性让我选,我宁可选择后者。是在不行,我可以这么处理: 第一种方案: private -> public 第二种方案: private string 私有函数(参数){.....} public string 私有函数ForTest(参数) { return 私有函数(参数)} 单元测试只需要对 私有函数ForTest进行测试就可以了。 |
|
返回顶楼 | |
发表时间:2008-08-24
amonlei 写道 gigix 写道 amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? 呵。。。比方说业务部分的逻辑测试需要基础数据的初始化,每一部分的业务逻辑在各个时期(业务变化)所需要的基础数据不一致。开始的时候当然希望是公用,也就是初始化好一份,大家一起用。但是,慢慢地公用数据的维护将变得越来越困难。最后,程序员们,干脆自己写一份初始化数据给自己的测试用例跑(私用)。真正重视测试的项目或者公司,肯定遇到过此类问题。 问的就是这个。什么叫“自己的测试用例”? |
|
返回顶楼 | |
发表时间:2008-08-24
gigix 写道 tommychang 写道 gigix 写道 amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? 我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题. 如果一个私有函数有复杂的逻辑以至于需要对它测试 就应该把这段逻辑抽取到一个单独的对象中 (估计又有人要说,做不到啊,太理想化了啊。这次我不再跟了,做不到就做不到吧。) 大部分做得到,少部分涉及到“核弹发射”的私有代码做不到:) |
|
返回顶楼 | |
发表时间:2008-08-24
gigix 写道 amonlei 写道 gigix 写道 amonlei 写道 不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。
我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”? 呵。。。比方说业务部分的逻辑测试需要基础数据的初始化,每一部分的业务逻辑在各个时期(业务变化)所需要的基础数据不一致。开始的时候当然希望是公用,也就是初始化好一份,大家一起用。但是,慢慢地公用数据的维护将变得越来越困难。最后,程序员们,干脆自己写一份初始化数据给自己的测试用例跑(私用)。真正重视测试的项目或者公司,肯定遇到过此类问题。 问的就是这个。什么叫“自己的测试用例”? 我来给你俩当把翻译吧: amonlei的意思是说,单元测试的setUp里面需要准备大量数据,会导致难于维护 |
|
返回顶楼 | |
发表时间:2008-08-25
知我者楼上也。。。。
|
|
返回顶楼 | |
发表时间:2008-08-25
另外,测试用例的设计和代码review工作量不少于逻辑代码。单测的代码往往多余逻辑代码数倍(n组数据覆盖n条逻辑分支),项目经理如果连逻辑代码的管理都没啥把握,就更不要考虑引入单元测试了。
如果一个团队在设计、管理方面达不到要求,不建议引入。 |
|
返回顶楼 | |