震惊!在宇宙中比黑洞还强大的存在竟是...
还记得你第一次在百度上搜索“黑洞”时是什么感受吗?
打开你们电脑里的VS2008
————许老师
Universe No.1 IDE
Microsoft Visual Studio
除了体积,你没有可以指摘的地方
什么?JAVA?
————潘正磊
哦,我的老伙计,9102年了,为什么不试试神奇的VScode呢?
注:现在VScode支持java7
闲言少叙
咱们直入主题,简短地演示一下VS上的单元测试功能
本来是应该这样的,然后我本来下面应该说“新建一个项目[一张图片]...打开这个选项[另一张图片]......”
可惜,本来打算使用VSTS上的自动测试方案目前有所变化,那么变化究竟是什么?变化就是
VSTS 现在是 Azure DevOps!
哇哦...
白底色块风格,简约线条配合,还有这个,额...小插画
Perfect
可惜,还是可惜,我们目前需要的或许是一个更基础的测试方案,就像没朋友的小孩子在家里把门关上玩自己心爱的手办一样的脱离世俗纷扰的快乐单机模式
Ok,先拒绝体验技术的诱惑,收拾下心情
那么回到MS的官网一眼就看到了这个
哦,我的老天
爽
好,那么我们开了个好头,而笔者到这里呢,引路的工作也差不多到头了,接下来如果各位想继续看呢,可以来看看笔者根据手册引导如何踩坑或者一边跟着手册一遍看着博客...但是个人建议还是不要浪费时间,直接奔向手册自己实践来的快一点,最后给出笔者使用的官方演示
下面我们要严肃起来了
我的回合!DUEL!
严肃,那必不可能
选例
这里选择的指引页是上文的官方演示
- 打开VS
- 创建新项目
- 选择创建C#类库,点击下一步
啧...
这种陈词滥略占篇幅,若真有不懂,STFW
注:笔者选择的是.core类库,测试框架使用的是MSTest
新建测试项目
如果你拥有比较完整的VS,那么应该不会在这个环节遇到什么阻力,我们这里要将测试项目添加到你的当前方案中,一切在图形界面下操作,并且除了依赖项没有任何需要你再添加的路径,甚至依赖项也是通过选择界面添加
- 右键你的解决方案添加测试项目,就当给自己孩子起名字一样命个好名哦
- 值得注意的地方lei了,要正确地添加依赖项!
- 嗯,所以好好找找吧
弄个测试类
接下来我们要新建一个测试类来对我们之前的模块(C#中可以理解为类)进行测试啦~
- 给你的测试类弄个好名字
- 引入你要测试的类的命名空间
- 确定以上无误
- 不要乱删不认识的东西
整个测试函数
这一步就是在类内添加测试函数,就是我们的测试方法,相当于一个门神,你要把能通过的或者不能通过的东西的模样告诉他,他再根据一些绝对的相对的范围去做决定,决定是让那东西过去还是拦住它转而去和你打报告(assert类方法)
注意一点,该函数是没有参数与返回值的
具体的函数实现和代码在指引中都很清楚,如果连接不上可以联系笔者,笔者会将所有代码贴在后面
注:如果前面操作都没有问题的话,我们会得到这样一个界面
然后,搞起来
- 打开生成菜单,选择生成解决方案,如果没问题的话就会在测试资源管理器中找到一个项目列表,边界子项就是你的测试函数的名字 (如果没有找到测试管理器,可以找找测试菜单,窗口选项)
- 选择测试资源管理器上的全部运行,然后看它快乐的跑起来,如果没有问题的话这孩子会开心到变绿,但如果有问题的话呢,就是伤心的红色(其实是警告的红色)
- 如果你获得了红色,那么恭喜你暂时没问题,在这个例子中,我们是必败的
- 现在我们的测试函数进入到了败者组,在测试资源管理器中可以看到对应的细节,不得不说错误情况组织成的语言可读性非常之高,几乎可以理解为日常用语
修复这个实例,再来一次
- 根据刚才得到的错误信息实力分析一波,测试函数调用***函数的结果出错了,好,那么就回到原来的代码里找到错误
- 改咯(这里可以直接右键有问题的函数然后->转到定义or速览定义进行更改,感受宇宙第一IDE的强大)
- 再·来·一·次
- 绿意盎然胜者组欢迎你
更多的未来,关于测试
哇,不得不说我竟然开始爱上这种机翻格式的句子了,竟有种奇妙的未来感
咳,好,书归正传,该演示到这里其实并没有完全结束,下面还有篇幅讲述关于异常状态的处理,比如非法输入,这里就不再赘述了,希望各位读者在大致懂得了框架的一些操作,切实感受到它的一些概念之后继续跟着演示内容尝试操作,当然不清楚异常处理的同学最好去进一步了解异常的概念,RTFM
这里澄清一下,笔者这里引用外部链接并非是不负责任的行为,恰恰是认为这种方式对各位读者能起到实质性的帮助,笔者以前看过很多指引向的博文,最终自己总是会被带的一头雾水
直到后来知道了RTFM (Read The Fucking Manual)和STFW(Search The Fucking Web),才开始真正使用官方手册说明进行学习,效率才得以提升,中国有句老话,叫:
授人以鱼,不如授人以渔
而我以为的渔,并不限于方法,也可以是寻找方法的方法,在这里斗胆分享给各位
注:其实前文笔者基本上没怎么插入截图,一是为了阅读更加流畅简便,二是内容完善确实不需要截图,但为什么又插入截图了呢?是因为这个是个作业...要恰饭的嘛