网站运营建设的培训免费建站网站号

web/2025/10/9 13:54:09/文章来源:
网站运营建设的培训,免费建站网站号,用什么框架做网站快,怎么样可以做自己的网站我大部分时间都在使用EasyMock #xff0c;但是最近我和一些非常愿意使用Mockito的人一起工作。 我不打算在同一项目中使用两个框架来实现相同的目的#xff0c;因此我采用了Mockito 。 因此#xff0c;在过去的几个月中#xff0c;我一直在使用Mockito #xff0c;这是我… 我大部分时间都在使用EasyMock 但是最近我和一些非常愿意使用Mockito的人一起工作。 我不打算在同一项目中使用两个框架来实现相同的目的因此我采用了Mockito 。 因此在过去的几个月中我一直在使用Mockito 这是我对两者的比较分析。 与我一起工作的人列举了使用Mockitio的测试可读性的原因但是我对此有不同的看法。 假设我们要测试以下代码 public class MyApp {MyService service;OtherService otherService;void operationOne() {service.operationOne();}void operationTwo(String args) {String operationTwo otherService.operationTwo(args);otherService.operationThree(operationTwo);}void operationThree() {service.operationOne();otherService.operationThree(success);} }class MyService {void operationOne() {} }class OtherService {public String operationTwo(String args) {return args;}public void operationThree(String operationTwo) {} } 现在让我使用EasyMock和Mockito为此类编写一个简单的测试用例。 public class MyAppEasyMockTest {MyApp app;MyService service;OtherService otherService;Beforepublic void initialize() {service EasyMock.createMock(MyService.class);otherService EasyMock.createMock(OtherService.class);app new MyApp();app.service service;app.otherService otherService;}Testpublic void verifySimpleCall() {service.operationOne();EasyMock.replay(service);app.operationOne();EasyMock.verify(service);}} public class MyAppMockitoTest {MyApp app;MyService service;OtherService otherService;Beforepublic void initialize() {service Mockito.mock(MyService.class);otherService Mockito.mock(OtherService.class);app new MyApp();app.service service;app.otherService otherService;}Testpublic void verifySimpleCall() {app.operationOne();Mockito.verify(service).operationOne();}} 这是一个非常简单的测试我必须说Mockito更具可读性。 但是根据经典的测试方法Mockito测试并不完整。 我们已经验证了我们正在寻找的电话但是如果明天我通过添加一个服务电话来更改源代码则测试不会中断。 void operationOne() {service.operationOne();service.someOtherOp();} 现在这使我感到测试不够好。 但值得庆幸的是Mockito提供了verifyNoMoreInteractions 可用来完成测试。 现在让我为MyApp类编写一些测试。 public class MyAppEasyMockTest {Testpublic void verifyMultipleCalls() {String args one;EasyMock.expect(otherService.operationTwo(args)).andReturn(args);otherService.operationThree(args);EasyMock.replay(otherService);app.operationTwo(args);EasyMock.verify(otherService);}Test(expected RuntimeException.class)public void verifyException() {service.operationOne();EasyMock.expectLastCall().andThrow(new RuntimeException());EasyMock.replay(service);app.operationOne();}Testpublic void captureArguments() {CaptureString captured new CaptureString();service.operationOne();otherService.operationThree(EasyMock.capture(captured));EasyMock.replay(service, otherService);app.operationThree();EasyMock.verify(service, otherService);assertTrue(captured.getValue().contains(success));}}public class MyAppMockitoTest {Testpublic void verifyMultipleCalls() {String args one;Mockito.when(otherService.operationTwo(args)).thenReturn(args);app.operationTwo(args);Mockito.verify(otherService).operationTwo(args);Mockito.verify(otherService).operationThree(args);Mockito.verifyNoMoreInteractions(otherService);Mockito.verifyZeroInteractions(service);}Test(expected RuntimeException.class)public void verifyException() {Mockito.doThrow(new RuntimeException()).when(service).operationOne();app.operationOne();}Testpublic void captureArguments() {app.operationThree();ArgumentCaptor capturedArgs ArgumentCaptor.forClass(String.class);Mockito.verify(service).operationOne();Mockito.verify(otherService).operationThree(capturedArgs.capture());assertTrue(capturedArgs.getValue().contains(success));Mockito.verifyNoMoreInteractions(service, otherService);} } 这些是一些实际的测试场景我们想要声明参数异常等。如果我查看并比较使用EasyMock编写的测试和使用Mockito进行的测试我倾向于觉得这两个测试在可读性上都是相同的但它们都没有一个更好的任务。 EasyMock中大量的期望和返回调用使测试不可读并且Mockito的verify语句通常会影响测试的可读性。 根据Mockito的书verifyZeroInteractionsverifyNoMoreInteractions不应在您编写的每个测试中使用但是如果我将它们排除在测试范围之外则我的测试还不够好。 此外在测试中所有事情都应在开发人员的控制之下即交互如何发生以及交互如何发生。 在EasyMock中这方面更明显因为开发人员必须在他的代码中放下所有这些交互但是在Mockito中框架负责所有交互而开发人员只关心它们的验证如果有。 但是这可能会导致测试场景其中开发人员不受所有交互的控制。 Mockito具有像JunitRunner这样的好东西可用于创建具有所有必需依赖项的Mocks。 这是删除一些基础结构代码的好方法并且EasyMock也应该有一个。 RunWith(MockitoJUnitRunner.class) public class MyAppMockitoTest {MyApp app;MockMyService service;MockOtherService otherService;Beforepublic void initialize() {app new MyApp();app.service service;app.otherService otherService;} } 结论 由于我已经使用了这两个框架因此我认为除了简单的测试用例之外EasyMock和Mockito都导致可读性相同的测试用例。 但是EasyMock对于单元测试更好因为它迫使开发人员控制事物。 由于其假设和考虑Mockito将这种控制隐藏在地毯下因此不是一个好选择。 但是Mockito提供了某些非常有用的功能例如junitRunner调用链接而EasyMock的下一个版本中应该有一个。 参考 到目前为止 我们的JCG合作伙伴 Rahul Sharma 使用EasyMock或Mockito在The road…博客博客中。 翻译自: https://www.javacodegeeks.com/2012/08/using-easymock-or-mockito.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化措施二十条跟我学seo

终结技:CtrlShiftL 显示所有快捷键Ctrl1 快速修复(最经典的快捷键,就不用多说了)CtrlD: 删除当前行 CtrlAlt↓ 复制当前行到下一行(复制增加)CtrlAlt↑ 复制当前行到上一行(复制增加)Alt↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt↑ 当前行…

大江网站建设asp 企业网站源码

超越传统测试:如何构建可靠的持续集成测试管道 引言 持续集成测试是现代软件开发中至关重要的一环,它可以帮助团队及时发现和解决代码问题,提高软件质量。然而,传统的测试方法往往存在效率低、容易出错等问题。本篇博客将介绍如…

那里可以做app网站知名品牌网站有哪些

Angular国际化方案 首先和大家推荐一个xlf文件的操作工具,支持合并和编辑功能,github,到release界面下载。 对于Angular国际化,官方提供了i18n方案,也就是标签的方式,通过angular CLI来识别。国际化方案必须在编译前定义下来,所以不能动态翻译。也就是当有人切换语言时,…

宁乡电商网站建设报价山西省建设局网站

WebSocket 是 HTML5 提供的一种网络通讯协议,用于服务端与客户端实时数据传输。广泛用于浏览器与服务器的实时通讯,APP与服务器的实时通讯等场景。 相比传统HTTP协议请求响应式通讯,WebSocket协议可以做到实时的双向通讯,服务端可…

湖北省建设招投标监督机构网站如何搭建公司内部网站

该错误提示表示您的 OpenSSL 版本过低,无法兼容 urllib3 v2.0。 解决此问题的方法是升级您的 OpenSSL 版本至 1.1.1 或以上。具体操作如下: 方法一: 检查您的 OpenSSL 版本,使用以下命令: openssl version 如果您的…

做网站在哪买域名wordpress nginx 伪静态

在新版本的macos中已经将默认的python升级成了3.x , 今天介绍一个简单的方法在新版本的macos中快速安装 python 2.7的方法, 就是使用brew安装python版本管理工具 pyenv来安装python2.7 # 安装pyenv版本管理工具 brew install pyenv # 安装python2.7 可以安装多个版本的ptyhon…

网站推广方案模板建设通网站是免费的吗

【分析】 如果行为树的节点很多,那么会存在要经过很多节点才会走到动作节点的情况。显然,性能上不如状态机。 每帧都需要重新遍历一系列节点才会走到动作节点,而实际上很多条件节点在数帧内不会有变化,这是造成性能问题的重要原…

临沂市兰山区建设局网站做的好的茶叶网站

文章目录 1.简介2.组成参考文献 1.简介 MySQL Cluster 是官方推出的基于 NDB(Network DataBase)存储引擎的高可用和可伸缩的分布式数据库系统。 以下是 MySQL NDB Cluster 的主要特点和能力: 高可用:MySQL Cluster 具有内置的高…

多语言网站系统轻创网

前言: 本人一度被Python的虚拟环境的配置所困扰,前段时间抽空学习了一下,现在总结一下方法,供大家参考。 先使用winr打开命令行窗口。 展示所有虚拟环境 conda env list 创建虚拟环境 例如我们创建一个叫做py_sk的虚拟环境 …

龙岩网站报价抖音代运营需要什么

1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两个服务器交互数据。 2.Dubbo的由来&…

led网站制作seo比较好的优化

可见性得以保障,并不意味着是的,所以可以说您正在编写一个Spring MVC应用程序,然后您决定:“我想做一些单独的封装算法,这些算法可以互换来执行特定的行为”。 对此的经典回应是“您需要一个战略模式男孩!”。 所以&a…

高端网站开发哪家专业做网站需要懂程序吗

0x00 前言 之前对于app反编译的smali汇编语言都是静态分析为主,加上一点ida6.6的动态调试,但是ida的调试smali真的像鸡肋一样,各种不爽,遇到混淆过的java代码就欲哭无泪了。后来知道IDEA用一款插件也可以实现smali的动态调试&a…

涂料网站模版网站平台推广有哪些

目录 实验内容(任务) PCB项目文件及原理图文件的创建及保存: 熟悉窗口界面、主菜单、各工具栏及图纸参数的设置: 首先先通过"纸张选择"做如下修改 修改纸张大小👇 修改标题栏的格式👇 修改…

万网做网站上海家装公司十大排名

一、修改文件/终端的属性1、修改文件创建时间如果蓝队是按照文件修改时间来判断后门的话,比如现在我们上传一个shell,可以看到shell文件与原文件的时间是不同的解决方法:touch -r teamserver shell.php现在再来看原文件与shell文件的修改时间…

科技 响应式网站模板下载一般通过男网友

在许多情况下,Excel记录的数据将按照发生的日期进行记录,但是根据日期记录的数据将非常分散,通常需要每月汇总相应的数据. 在这种情况下,您需要将日期转换为月份. 本文介绍了如何使用SUMPRODUCT函数按月汇总数据.公式提示在SUMPRO…

自己怎么做网站卖东西网络营销的未来发展趋势

win7 activemqML7上的HL7是可以说HL7协议格式的系统的一种非常常见的传输机制。 JBoss Fuse是一个非常强大的微服务样式集成平台,在为关键医疗保健提供者构建灵活,有弹性,高可用性的集成方案方面拥有良好的经验。 此外,在JCAPS上替…

开发app的网站有哪些网站开发毕业设计收获与体会

传送门 文章目录题意:思路:题意: 思路: 转换一下题意,就是求一个最小公共前后缀,显然可以暴跳nenene数组,复杂度O(n2)O(n^2)O(n2),注意到我们每次都跳的话会跳到很多重复的位置&…

如何手机做网站仿站小工具 wordpress

Sharding-JDBC是当当网开源的适用于微服务的分布式数据访问基础类库,完整的实现了分库分表,读写分离和分布式主键功能,并初步实现了柔性事务。Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。其适用于任何基于…

外综服网站开发青岛网页设计公司哪个最好

即使是对于非常简单的系统来说,也不可能在单一的模型中描述整个架构的要素和细节。如果你试图那么做,最终就会得到“弗兰克斯坦怪物”一样的模型,而且根本无法管理,也无法向任意一位利益相关者展示系统。 管理这种复杂情况的最佳方…

做电影网站视频放在那里济南做网站维护的公司

要在 CentOS 上将系统时间设置为本地时间,可以按照以下步骤进行操作: 1.首先,你需要确定你想要设置的本地时间。例如,如果你想要将系统时间设置为当前时间(假设是北京时间),则可以使用以下命令获…