Benjamin Day的Unit Test讲座小结

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:widow-orphan; font-size:10.5pt; font-family:"Calibri","sans-serif"; mso-fareast-font-family:宋体; mso-bidi-font-family:宋体;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; mso-style-unhide:no; mso-style-qformat:yes; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; text-indent:21.0pt; mso-pagination:widow-orphan; font-size:10.5pt; font-family:"Calibri","sans-serif"; mso-fareast-font-family:宋体; mso-bidi-font-family:宋体;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-hansi-font-family:"Times New Roman"; mso-font-kerning:0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:1519733367; mso-list-type:hybrid; mso-list-template-ids:149483918 -1695523258 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-text:%1、; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:39.0pt; text-indent:-18.0pt;} @list l0:level2 {mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level3 {mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level4 {mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level5 {mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level6 {mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level7 {mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level8 {mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level9 {mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->

昨天下午,听了一场关于 Unit Test 的讲座,预定 2 个小时的讲座,去除中场休息,会后的提问交流环节,以及其他一些零零总总的耗损,也就 1 个多小时的内容,委实听不到什么很有价值的东西。当然,也不能说整个讲座全然无用,讲师好歹也是Unit Test, VSTS 领域的MVP1 个小时的时间,多多少少也能听出一些关于 Unit Test 的端倪。

 

1、 Uint Test TDD 开发模式的一部分,因此由开发人员自己来完成自己开发模块的Unit Test 工程是最经济的。

 

2、 Uint Test 是开发的一部分,他不能替代QA ,他是用来保证代码无错(如NullReferenceObject 错误,除数为0 的错误等) ,而不能用来保证逻辑无错(如某个文字颜色不对,这个文本框应该显示LastName 而不是FirstName 等);

 

3、 Uint Test 并不适合用来测试用户界面,但是好的程序设计,可以将一部分和用户界面相关的内容转变为Unit Test 可以测试的内容。

 

这里,我想要多说2 句,在讲座中,讲师并没有提到这一点,他只是在提到,在使用Unit Test 测试用户界面的时候,我们需要确定Unit Test 可以做的事情的范围,让Unit Test 只作那些可以做的事情。他举了一个例子,这个例子使用了MVC 模型,而通过使用Unit Test 来测试Contollor ,可以测试一部分和View 相关的内容。这这里,其实可以看出来,这么做的本质,并不是改变了适合使用Unit Test 内容范围,而是通过程序设计,将适合使用Unit Test 和不适合使用Unit  Test 的内容分离的更彻底,从而将一部分和用户界面相关的内容变成适合使用Unit Test 的内容,已达到使用Unit Test 测试用户界面。

 

4、 Rhion Mocks 是一个免费的支持库,可以用在Uint Test 工程中,减少你开发Unit Test 工程的工作量

 

5、 需要测试的内容需要DataBaseWEB ServiceDomain Model 支持时可以,也应该使用Repository Partern

 

6、 Martin Fowler 是这方面的强人,要看他写的书。

 

7、 正式代码和测试代码比较合适的比例为:1321

 

这个英文水平有限,没有听清楚:一开始讲师似乎提到1 行代码对应3 行测试代码,最后有人提了这方面的问题,讲师又说10000 行代码对应5000 行测试代码。

 

8、 剩余的就是XX 东西怎么用,XX 测试应该怎么写这些很细节的东西了,。

 

 

以上就是我个人,在听了这次讲座后,对这次讲座内容的一个归纳,

 

而就我目前对Unit Test 的认知,归纳起来很简单:

 

Unit Test 的本质就是单步调试,Unit Test 工程就是可以让你通过写程序来更好的做单步。

 

PS :鉴于个人无论是英文还是技术水平有限,也许对讲师所说的内容有误解,也许有些东西领悟也不正确,欢迎大家指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值