论坛首页 综合技术论坛

如何推广前端单元测试

浏览 20035 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-08-24  
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?
0 请登录后投票
   发表时间:2008-08-24  
gigix 写道
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?


我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题.
0 请登录后投票
   发表时间:2008-08-24  
tommychang 写道
gigix 写道
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?


我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题.

如果一个私有函数有复杂的逻辑以至于需要对它测试
就应该把这段逻辑抽取到一个单独的对象中
(估计又有人要说,做不到啊,太理想化了啊。这次我不再跟了,做不到就做不到吧。)
0 请登录后投票
   发表时间:2008-08-24  
gigix 写道
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?

呵。。。比方说业务部分的逻辑测试需要基础数据的初始化,每一部分的业务逻辑在各个时期(业务变化)所需要的基础数据不一致。开始的时候当然希望是公用,也就是初始化好一份,大家一起用。但是,慢慢地公用数据的维护将变得越来越困难。最后,程序员们,干脆自己写一份初始化数据给自己的测试用例跑(私用)。真正重视测试的项目或者公司,肯定遇到过此类问题。
0 请登录后投票
   发表时间:2008-08-24  
tommychang 写道
gigix 写道
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?


我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题.

私有函数,说实话,如果纯粹是考虑安全而做成私有,大可不必。大多数情况下,所谓的安全性和可测试性让我选,我宁可选择后者。是在不行,我可以这么处理:
第一种方案:
private -> public
第二种方案:
private string 私有函数(参数){.....}

public string 私有函数ForTest(参数) { return 私有函数(参数)}

单元测试只需要对 私有函数ForTest进行测试就可以了。
0 请登录后投票
   发表时间:2008-08-24  
amonlei 写道
gigix 写道
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?

呵。。。比方说业务部分的逻辑测试需要基础数据的初始化,每一部分的业务逻辑在各个时期(业务变化)所需要的基础数据不一致。开始的时候当然希望是公用,也就是初始化好一份,大家一起用。但是,慢慢地公用数据的维护将变得越来越困难。最后,程序员们,干脆自己写一份初始化数据给自己的测试用例跑(私用)。真正重视测试的项目或者公司,肯定遇到过此类问题。

问的就是这个。什么叫“自己的测试用例”?
0 请登录后投票
   发表时间:2008-08-24  
gigix 写道
tommychang 写道
gigix 写道
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?


我觉得对于js来说,只要不要"闭包"得太厉害,使用一些convention来表明私有变量就不错了,单元测试对私有函数的测试现在却是是个难题.

如果一个私有函数有复杂的逻辑以至于需要对它测试
就应该把这段逻辑抽取到一个单独的对象中
(估计又有人要说,做不到啊,太理想化了啊。这次我不再跟了,做不到就做不到吧。)

大部分做得到,少部分涉及到“核弹发射”的私有代码做不到:)
0 请登录后投票
   发表时间:2008-08-24  
gigix 写道
amonlei 写道
gigix 写道
amonlei 写道
不要把单测看得那么美哟,通过项目实践,我发现单元测试的维护量其实也不小:最明显的就是测试前的初始化数据。是公用呢还是私用呢,随着项目的深入,这一块慢慢的会成为程序员头疼的地方。

我不明白什么叫“私用”。你是在给一个项目写程序,又不是在写自己的玩具,哪来的“私用”?

呵。。。比方说业务部分的逻辑测试需要基础数据的初始化,每一部分的业务逻辑在各个时期(业务变化)所需要的基础数据不一致。开始的时候当然希望是公用,也就是初始化好一份,大家一起用。但是,慢慢地公用数据的维护将变得越来越困难。最后,程序员们,干脆自己写一份初始化数据给自己的测试用例跑(私用)。真正重视测试的项目或者公司,肯定遇到过此类问题。

问的就是这个。什么叫“自己的测试用例”?

我来给你俩当把翻译吧:
amonlei的意思是说,单元测试的setUp里面需要准备大量数据,会导致难于维护
0 请登录后投票
   发表时间:2008-08-25  
知我者楼上也。。。。
0 请登录后投票
   发表时间:2008-08-25  
另外,测试用例的设计和代码review工作量不少于逻辑代码。单测的代码往往多余逻辑代码数倍(n组数据覆盖n条逻辑分支),项目经理如果连逻辑代码的管理都没啥把握,就更不要考虑引入单元测试了。

如果一个团队在设计、管理方面达不到要求,不建议引入。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics