当前位置: 首页 > news >正文

建设银行海门支行网站电子规划书商务网站建设

建设银行海门支行网站,电子规划书商务网站建设,梁山网站建设电话,clh网站建设公司我对最近在“您应该测试什么”上的博客有很多反应#xff0c;有些人出于各种原因同意我的想法#xff0c;另一些人则认为建议某些类可能不需要单元测试是非常危险的。 已经处理了什么测试#xff0c;今天的博客涉及为什么要编写单元测试#xff0c;而今天的示例代码是基于一… 我对最近在“您应该测试什么”上的博客有很多反应有些人出于各种原因同意我的想法另一些人则认为建议某些类可能不需要单元测试是非常危险的。 已经处理了什么测试今天的博客涉及为什么要编写单元测试而今天的示例代码是基于一个真实的故事只有姓名日期和事实已经改变。 一位客户最近请求紧急释放一些代码以出于法律原因在其网站的相应页面上在屏幕上显示一条消息。 方案是如果一条信息存在于数据库中则应该在屏幕上显示一条信息–这是一个非常简单的方案可以用几行简单的代码行覆盖。 但是在急于编写代码的过程中开发人员没有编写任何单元测试并且代码中包含一个直到补丁到达UAT才发现的错误。 您可能会问到错误是什么这是我们在职业生涯中某个时候都已经完成的事情添加不需要的分号;。 到一行的结尾。 我将使用我以前的“测试技术”博客中使用的AddressService场景来演示代码的重写特技双重版本如下UML图所示 在此演示中功能已更改但是逻辑和示例代码结构基本上保持不变。 在AddressService世界中逻辑运行如下 从数据库获取地址。 如果地址存在则将其格式化并返回结果字符串。 如果地址不存在则返回null。 如果格式化失败请不要担心并返回null。 重新编写的AddressService.findAddress…看起来像这样 Component public class AddressService {private static final Logger logger LoggerFactory.getLogger(AddressService.class);private AddressDao addressDao;public String findAddressText(int id) {logger.info(In Address Service with id: id);Address address addressDao.findAddress(id);String formattedAddress null;if (address ! null);try {formattedAddress address.format();} catch (AddressFormatException e) {// Thats okay in this business case so ignore it}logger.info(Leaving Address Service with id: id);return formattedAddress;}AutowiredQualifier(addressDao)void setAddressDao(AddressDao addressDao) {this.addressDao addressDao;} } 您发现错误了吗 当我查看代码时我没有……为了以防万一我在下面注释了一个屏幕截图 演示一个琐碎的错误任何人都可以犯的一个简单错误的目的是强调编写一些单元测试的重要性因为单元测试可以发现问题并节省大量的时间和费用。 当然每个组织都不同但是发布上面的代码会导致以下事件序列 该应用程序已部署到开发测试和UAT。 测试团队检查了修改后的屏幕是否可以正常工作并通过了更改。 其他屏幕经过回归测试发现不正确。 记录所有失败的屏幕。 提出了紧急的错误报告。 该报告通过各个管理级别。 该报告已传递给我我想念午餐以调查可能的问题。 该报告将发送给团队的其他三名成员进行调查四双眼睛比一只更好 找到并修复了有问题的分号。 该代码在dev中进行了重新测试并签入到源代码管理中。 该应用程序已构建并部署到开发测试和UAT。 测试团队检查修改后的屏幕是否可以正常工作并通过更改。 其他屏幕经过回归测试并通过。 紧急修复程序已通过。 上述一系列事件显然浪费了大量的工时浪费了大量现金不必要地提高了人们的压力水平并破坏了我们在客户中的声誉 所有这些都是编写单元测试的很好理由。 为了证明这一点我编写了三个缺失的单元测试只花了我额外的15分钟开发时间与浪费的工时相比这似乎是开发人员时间的一种很好的利用。 RunWith(UnitilsJUnit4TestClassRunner.class) public class WhyToTestAddressServiceTest {private AddressService instance;Mockprivate AddressDao mockDao;Mockprivate Address mockAddress;/*** throws java.lang.Exception*/Beforepublic void setUp() throws Exception {instance new AddressService();instance.setAddressDao(mockDao);}/*** This test passes with the bug in the code* * Scenario: The Address object is found in the database and can return a* formatted address*/Testpublic void testFindAddressText_Address_Found() throws AddressFormatException {final int id 1;expect(mockDao.findAddress(id)).andReturn(mockAddress);expect(mockAddress.format()).andReturn(This is an address);replay();instance.findAddressText(id);verify();}/*** This test fails with the bug in the code* * Scenario: The Address Object is not found and the method returns null*/Testpublic void testFindAddressText_Address_Not_Found() throws AddressFormatException {final int id 1;expect(mockDao.findAddress(id)).andReturn(null);replay();instance.findAddressText(id);verify();}/*** This test passes with the bug in the code* * Scenario: The Address Object is found but the data is incomplete and so a* null is returned.*/Testpublic void testFindAddressText_Address_Found_But_Cant_Format() throws AddressFormatException {final int id 1;expect(mockDao.findAddress(id)).andReturn(mockAddress);expect(mockAddress.format()).andThrow(new AddressFormatException());replay();instance.findAddressText(id);verify();} } 最后冒着自鸣得意的风险我不得不承认尽管在这种情况下该错误不是我的但在我学会编写单元测试之前我过去曾大范围地发布了类似的错误…… 可从GitHub上获得源代码 git//github.com/roghughe/captaindebug.git 参考 为什么要编写单元测试-来自JCG合作伙伴 Roger Hughes的测试技巧8 位于Captain Debugs Blog中 。 相关文章 测试技巧–不编写测试 端到端测试的滥用–测试技术2 您应该对什么进行单元测试 –测试技术3 常规单元测试和存根–测​​试技术4 使用模拟的单元测试–测试技术5 为旧版代码创建存根–测试技术6 有关为旧版代码创建存根的更多信息–测试技术7 一些定义–测试技术9 翻译自: https://www.javacodegeeks.com/2011/12/why-you-should-write-unit-tests-testing.html
http://www.sadfv.cn/news/111027/

相关文章:

  • 建设工程鲁班奖公示网站上海建网站多少钱
  • 网站基本常识湖南沙坪建设集团有限公司网站
  • 网站设计公司哪家比较好wordpress5.2附加域
  • 重庆有名的网站建设闵行专业做网站
  • 济南网站建设v芯企优互联不错中山网站建设文化价位
  • 用个人免费空间快速建立个人网站后方平台seo是什么专业的课程
  • 论坛网站模块建设网站的申请信用卡分期
  • 如何做网站粘贴广告学做简单网站
  • 电脑网站开发者模式百度给做网站吗
  • 如何分析网站建设免备案的网站
  • 成都可以做网站的公司网站模板制作教程视频
  • 免费软件站西安网站建设eliwe
  • 个人怎么做课程网站海宁市规划建设局网站
  • 免费企业网站源代码淘宝商城
  • 盐城网站建设找哪家好可以做外包的网站
  • 高端礼品定制网站wordpress 远程代码
  • 网站建设的目的分析上海装修公司口碑最好的是哪家
  • 服务企业建设网站济南WordPress培训
  • 自己做网站详细流程重庆品质网站建设销售
  • 网站开发数据库速度解决方法电商网站开发平台用什么人开发
  • 城乡建设部注册建筑师网站旅游网站 分析
  • 菏泽做网站建设找哪家网络营销的名词解释是什么
  • 做网站知名公司网页免费版
  • 个人如何建立网站扬中市平台公司
  • 公司简介网站怎么做html制作一个简单美食网页
  • 做国外有那些网站比较好钢管公司网站建设
  • 济南360做网站电话北京王府井附近景点攻略
  • 网站开发的流程和步骤是什么公众号菜单跳转网页怎么制作
  • 英国做电商网站辽宁建设工程信息网报名步骤
  • pc网站如何做sp网站被收录 但搜索不到主页