首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA实战技巧19:根据用户工作表选择隐藏显示功能区剪贴板组

excelperfect 有时候,我们可能想根据用户工作表选择决定隐藏或者显示功能区选项卡特定组,避免用户随意使用某些功能而破坏我们工作表结构。 下面,我们通过一个示例演示。...我们想让用户选择工作表列B任意单元格时,隐藏“开始”选项卡“剪贴板”组,而当用户选择其他单元格时,该组又重新显示,如下图1所示。 ?...图1:当用户选择单元格列B时,“剪贴板”组隐藏,处于其他单元格时,“剪贴板”组显示 首先,我们新建一个工作簿并保存。...图2:Custom UI Editor For Microsoft Office编辑输入XML 重新打开工作簿,按Alt+F11键打开VBA编辑器,插入一个标准模块,输入下面的代码: Public...) InRange =Not interSectRange Is Nothing Set interSectRange = Nothing End Function 双击工程资源管理器

4.1K10

Spock单元测试框架以及美团优选实践

Spock是一个Java和Groovy应用测试和规范框架。之所以能够众多测试框架脱颖而出,是因为它优美而富有表现力规范语言。...使用Spock解决单元测试开发痛点 如果在(if/else)分支很多复杂场景下,编写单元测试代码成本会变得非常高,正常业务代码可能只有几十,但为了测试这个功能覆盖大部分分支场景,编写测试代码可能远不止几十...语句,Spock提供了where标签,可以让我们通过表格方式测试多种分支。...也是继承自JUnit,所以使用PowerMock@PowerMockRunnerDelegate()注解,可以指定Spock父类Sputnik去代理运行PowerMock,这样就可以Spock里使用...的话,解决起来会更简单,只需where下增加一针对测试数据即可。

3.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

Spock单元测试框架以及美团优选实践

Spock是一个Java和Groovy应用测试和规范框架。之所以能够众多测试框架脱颖而出,是因为它优美而富有表现力规范语言。...使用Spock解决单元测试开发痛点 如果在(if/else)分支很多复杂场景下,编写单元测试代码成本会变得非常高,正常业务代码可能只有几十,但为了测试这个功能覆盖大部分分支场景,编写测试代码可能远不止几十...语句,Spock提供了where标签,可以让我们通过表格方式测试多种分支。...也是继承自JUnit,所以使用PowerMock@PowerMockRunnerDelegate()注解,可以指定Spock父类Sputnik去代理运行PowerMock,这样就可以Spock里使用...的话,解决起来会更简单,只需where下增加一针对测试数据即可。

2.7K20

spock】单测竟然可以如此丝滑

spock 这名称来源,个人猜测是因为《星际迷航》同名人物(封面图)。那么spock如何提高编写单测效率呢?...如果你用是 IDEA 可以通过如下方式创建,以前创建 Java 类我们都是选择第一个选项,现在我们选择第三个 Groovy Class 就可以了。...第一或者说表头,列出了我们要传数据变量名称,这里要与 expect 对应,不能少但是可以多。其它行都是数据,与表头一样都是通过 『 | 』 号分隔。...: 通过添加 @Unroll 注解,spock 自动把上面的代码拆分成了 3 个独立单测测试,分别运行运行结果更清晰了。...如果期望不执行这个方法就是 0 * xx ,这在条件代码验证很有用,然后 >> null 又是什么意思?

1.3K30

大型企业通常如何进行单元测试?

我们再深入分析每个阶段发现缺陷成本,主要指从发现到解决问题所需的人力时间成本:需求分析阶段:如果设计评审发现不合理,可以选择不执行,仅需花费几个小时进行会议讨论。...不能只是简单地打印结果,人工观察,在运行所有测试用例时很少会花时间检查每一个输出。 验证边界情况和异常情况,这两点经常被忽视。边界条件可能包括: 传入错误参数反应;依赖返回不正确结果情况。...前文提到使用Mock对象隔离I/O操作和随机事件,当然,Mock也可以应用于各种依赖关系,比如Spring Bean之间依赖、工具类、各种内部接口依赖等。...可以直接忽略待验证方法成员封装级别,可以直接测试私有声明方法和变量。基于数据驱动测试:借助where关键词和数据表方式,一个测试案例验证要测试参数和期望返回值所有可能情况。...**所以编写优秀单元测试代码是卓越程序员基本修养。因为针对有用户访问和无用户访问项目,相同代码甚至极端用户流量下可能带来截然不同效果。面对极端用户流量时,每次修改一代码上线都如履薄冰。

6400

Selenium 4 Java最佳测试框架

您还可以通过将JUnit与用于测试自动化Selenium集成执行网站自动化测试。每当添加任何新代码需要发版时,都需要重新执行整个测试用例,并确保没有不影响原有功能。 有哪些先决条件?...该框架与Selenium WebDriver for Java高度兼容,因此,JUnit和Selenium WebDriver也是完全兼容,作为某些先决条件,您需要 工作项目中使用较新版本JDK。...它们功能几乎相同,只是两个框架,JUnit无法进行依赖测试,并且参数化测试实现过程不同。...服务器端使用Java应用程序前端层,测试人员面临最常见问题是超时。...您编写测试用例目前可能工作正常,但是几天后,也许一些Ajax请求将比现在花费更多时间,或者某些Javascript运行速度会变慢。另外,您系统可能同时运行另一个进程,从而导致测试用例失败。

1.4K20

Spock测试框架实践(三)

在上一次Spock实践我们介绍了Spock基本概念,今天我们继续介Spock数据驱动和一些技巧。...一、首先介绍下spock数据驱动: Spock框架支持多种数据驱动方式 1.数据表,强于可读性,适合数据量小场景 2.数据管道,强于可维护性,适合数据量多场景 步骤:...在用例,把可变变量参数化 b. where模块配置参数数据 ? 实际测试工作,往往测试数量较大,此时最佳实践方式是从数据库读取数据作为驱动数据,例如: ?...二、技巧 1.对象构建技巧 测试过程,需要构建测试数据对象,对于比较复杂属性对象构造,用java往往比较繁琐笨重,需要不断调用setter方法设置属性值,但是groovy语法可以基于map构造器构造对象...[2, 4, 6, 8, 10] ==(1..10).findAll { i -> i % 2 == 0 } l collect()方法 集合元素根据条件转化为新元素并返回一个新元素集合。

1.1K10

Mysql资料 数据类型(下)

三.使用建议 原则 指定数据类型时候一般是采用从小原则,比如能用TINY INT最好就不用INT,能用FLOAT类型就不用DOUBLE类型,这样会对MYSQL在运行效率上提高很大,尤其是大数据量测试条件下...,偏向任何一方都是欠妥 存储引擎 根据选定存储引擎,确定如何选择合适数据类型。...使用合成(synthetic)索引。合成索引列某些时候是有用。一种办法是根据其它内容建立一个散列值,并把这个值存储单独数据列。接下来你就可以通过检索散列值找到数据行了。...把BLOB或TEXT列分离到单独某些环境,如果把这些数据列移动到第二张数据表,可以让你把原数据表 数据列转换为固定长度数据格式,那么它就是有意义。...这会减少主表碎片,使你得到固定长度数据性能优势。它还使你数据表运行 SELECT *查询时候不会通过网络传输大量BLOB或TEXT值。

41910

超详细!手把手教你用 JaCoCo 生成单测覆盖率报告!

我们都知道 Spock 是一个单测框架,其特点是语法简明。但当我们使用 Spock 写了一堆单元测试之后,如何生成对应单测覆盖率报告呢?...一般来说,我们会使用两个插件一起完成单测覆盖率报告生成,分别是: Maven Surefire Plugin JaCoCo Plugin 其中 Maven Surefire Plugin 是用来...本文将新建一个非 Web 项目演示如何生成 Spock 单测覆盖率报告。 初始化项目 这里初始化项目一个普通 Java 项目,并引入对应 Spock 依赖,如下代码所示: <!...我们使用浏览器打开该文件可以浏览到单测覆盖率情况,如下图所示: 疑问 关于如何配置这两个插件资料很多,但都运行不起来。后面我参考了官网配置,就成功配置好了。...是否一定要搭配一起使用? 简单地说,Surefire 插件主要是运行单测,生成单测数据。对于 JaCoCo 插件而言,其作用是基于 Surefire 插件去生成可视化报告。

2.8K30

关于单测技术选型,聊聊我思考

详细对比了 Mokito 与 Spock 差异,他们发展情况、学习曲线、工具支持等方面的比较如下图所示。...而 Spock 框架则在测试结构、异常测试、条件测试等方面比较有优势。因此,选择哪个测试框架完全基于实际情况。例如,如果你目前情况是: Java 是唯一语言。 想要更强编译时错误检查。...但如果你目前情况是: 希望单测跟简单易读 更简洁参数测试与异常测试 那么选择 Spock 会是更好选择。 为啥选择 Spock?...根据前面的分析,Mockito 主要优势在于比较稳定、主流,缺点在于不够简洁易读。...可维护性更强 极客时间《程序员测试课》,有一节关于讲了一个好自动化测试长什么样?在这里面,作者提到一个好单测应该由 准备、执行、断言、清理 4 个阶段组成。

62910

Maven和Gradle配置单元测试框架Spock

对于Groovy而言,最好选择似乎是GMavenPlus(重写不再维护GMaven插件)。...另一种选择是允许使用Groovy-Eclipse编译器和Maven 插件,但是它没有使用官方插件,groovyc并且在过去,使用Groovy 新发行版/功能存在一些问题。...编写测试,因此建议使用Spec附加后缀(从规范命名)命名文件,因此需要告诉Surefire 在这些文件也查找测试: maven-surefire-plugin...:1.0-groovy-2.4' 以及Gradle在哪里寻找他们信息: repositories { mavenCentral()} 连同定义包组和版本一起,基于GroovyDSL花费了15...顺便说一句,Gradle情况下,匹配Spock和Groovy版本也很重要,例如Groovy 2.4.1和Spock 1.0-groovy-2.4。

2K30

让单测变得如此简单 -- spock 框架初体验

单元测试通过对程序每个部分进行独立测试覆盖,且每次代码更新后自动执行,保证了新修改不会影响到旧功能。...spock 是通过 groovy 实现,groovy 是一种 jvm 下运行动态语言,与 java 最主要区别就在于 groovy 拥有更强语义,编写灵活,可读性强,虽然对于编写较大项目来说...@Unroll 注解 — 让测试结果分条展示 上图中,虽然我们运行了多个测试用例,但结果却显示一条结果,这样,当我们用例某条出错时,是难以直观定位到,既然是多个用例,我们预期中当然是每个用例单独占用一结果显示...Mock 测试 工程项目中,我们编写程序往往依赖于外部接口调用,但在单测环节,我们应该做到保证我们程序在外部接口返回正确前提下结果正确性,但由于实际运行环境、权限等等条件限制,我们往往不能在例行自动化单元测试真的去调用外部接口...Mock 测试通过模拟外部调用结果,让我们测试程序得以继续运行 JUnit ,我们需要使用 Mockit 实现接口 Mock,同时,Mock 编写也较为复杂,这些 spock 中就显得非常简单了

1.2K20

浅谈单元测试

众所周知,自动化测试相比手动测试一个比较明显特点就是见效慢,需要积累一定时间所产生价值才能超过手动测试,这还是比较理想情况下。某些时候可能永远也超不过。...之前对单元测试进行过一些尝试,写过一点文章: Maven和Gradle配置单元测试框架Spock Groovy单元测试框架spock基础功能Demo Groovy单元测试框架spock数据驱动Demo...基础(二) JUnit 5和Selenium基础(三) 近几日一直在对之前性能测试框架进行优化,在这个过程,我之前利用Groovy单元测试框架spock写过两个性能测试框架单元用例起到了非常大帮助...,不用再去检查各个类实现代码有没有忘记修改,直接运行用例,看结果即可。...,很难讲价值有多大,但是当我发现有了一种方式能快速验证代码是否可以正常运行以及快速调试功能时候,我觉得都是值

58520

MySQL索引优化:深入理解索引下推原理与实践

一、产生背景 MySQL 5.6之前,当查询使用到复合索引时,MySQL会先根据索引最左前缀原则,索引上查找到满足条件记录主键或指针,然后再根据这些主键或指针到数据表查询完整记录。...三、如何在执行计划查看ICP使用 MySQL,可以通过EXPLAIN命令查看查询执行计划,从而判断是否使用了ICP优化。...优化器决策 即使查询满足上述条件,MySQL优化器也不一定选择使用ICP。优化器会根据查询成本估算来决定是否使用ICP。如果优化器认为全表扫描或者其他访问方法更快,它可能不会选择ICP。...然后,再根据剩下索引项到数据表查询完整记录,并根据order_date > '2022-01-01’对行进行过滤。...总之,索引下推优化是MySQL 5.6引入一项重要特性,它能够某些查询场景下显著提高查询性能。实际应用,我们应该根据查询特点和表结构,合理设计索引,并充分利用ICP优化提高查询性能。

38710

Mysql数据库优化

存储引擎选择 查看当前支持存储引擎 SHOW ENGINES; 执行以上SQL语句,运行结果中含有6个字段。....索引概述 索引:是一种特殊数据结构,可以看做是利用MySQL提供语法将数据表某个或某些字段与记录位置建立一一个对应关系,并按照一定顺序排序好。 且:就是为了快速定位指定数据位置。...从数据库优化角度考虑:尽量减少表级锁定时间,提高多用户并发能力。. 如何释放“显式”表级锁: UNLOCK TABLES语句。...意向锁作用:就是标识表某些记录正在被锁定或其他用户将要锁定表某些记录。相对级锁,意向锁锁定粒度更大,用于在行级锁添加表级锁时判断它们之间是否能够互相兼容。...分表分类 水平分表:将一张数据表全部记录分别存储到多张数据表,因此水平分表创建时,必须保证各数据表涉及到字段全部相同。 水平分表使单张表数据能够保持一定量级。

2.4K20

单元测试再出发

单元测试是由软件开发人员编写和运行自动化测试,以确保应用程序一部分(称为单元)按预期工作。 单元是可以系统逻辑隔离最小代码段。这可以是单个函数、方法、过程、模块、类或对象。...一旦软件开发人员编写了单元测试,他们就可以本地机器上运行它以检查测试是否通过。他们还可以运行所有其他预先存在测试检查它们是否仍然通过。...有最流行编程语言单元测试框架。 测试用例执行期间,框架记录未通过任何标准测试并在摘要中报告它们。根据故障严重程度,框架可能会停止后续测试。...如果在构建过程任何单元测试失败,软件开发人员可以尝试再次发布之前先修复问题。 单元测试示例 下面是一个非常简单例子,说明单元测试如何工作。...我们有一个简单add函数,它接收两个数字作为参数并返回两个数字相加结果。这里我使用最近新学(其实复习)Groovy单元测试框架Spock演示。

44510

2017 年你不能错过 Java 类库

无忧final本地变量。 @NonNull - 或:我如何学会不再担心并爱上了非空异常(NullPointerException)。...简言之,类库和其他嵌入式组件都应该考虑采用SLF4J作为他们日志需求,因为类库无法将它们对日志框架选择强加给最终用户。另一方面,对于独立应用来说,就不一定需要使用SLF4J。...独立应用可以直接调用他们自己选择日志框架。而对于logback来说,这个问题是没有意义,因为logback是通过SLF4J暴露其日志接口。...参数化运行区别如下: 更明确 – 参数实在测试方法参数,而不是字段 更少代码 – 你不需要用构造函数来设置参数 你可以同一个类混合使用参数化和非参数化方法。...内容模式 请求验证 单元测试里运行,但是是作为一个对立进程或者一个WAR应用形式 可通过流畅Java API、JSON文件和基于HTTPJSON进行配置 对stub录制/回放 故障注入 针对每个请求根据条件进行代理

1K80

2018 年你不能错过 Java 类库

简言之,类库和其他嵌入式组件都应该考虑采用SLF4J作为他们日志需求,因为类库无法将它们对日志框架选择强加给最终用户。另一方面,对于独立应用来说,就不一定需要使用SLF4J。...独立应用可以直接调用他们自己选择日志框架。而对于logback来说,这个问题是没有意义,因为logback是通过SLF4J暴露其日志接口。...参数化运行区别如下: 更明确 - 参数实在测试方法参数,而不是字段 更少代码 - 你不需要用构造函数来设置参数 你可以同一个类混合使用参数化和非参数化方法。...body内容模式 请求验证 单元测试里运行,但是是作为一个对立进程或者一个WAR应用形式 可通过流畅Java API、JSON文件和基于HTTPJSON进行配置 对stub录制/回放 故障注入...针对每个请求根据条件进行代理 针对请求检查和替换进行浏览器代理 有状态行为模拟 可配置响应延迟 { "request": { "method": "GET",

83820

那些能帮助你提升十倍开发效率优质工具

2.Docker Docker是一个开源工具,用于自动云或物理服务器上部署应用程序。它允许开发人员和系统管理员笔记本电脑,数据中心VM或云上构建,交付和运行分布式应用程序。 ?...Java开发人员可以使用Selenium测试其HTML和JSP文件。它还提供了用于Web浏览器自动化各种工具和库。如果您处于自动化和测试领域,那么Selenium是您必须选择。 ? 5....它是一种动态语言,其功能类似于Python,Ruby,Perl和Smalltalk,并且通过提供简洁而强大语法扩展Java。如果如果你还不会使用它,那么一定要去学会!为什么?...因为它是Java补充。使用Groovy,您可以Java项目中做更多事情,而不仅仅是坚持简单Java。 ? 6. Spock Spock是针对Java和Groovy应用程序测试和规范框架。...使它在人群脱颖而出是其优美而富有表现力规范语言。由于其JUnit运行程序,Spock与大多数IDE,构建工具和持续集成服务器兼容。 7.

1.3K50

Spock 测试框架介绍和使用详解

使用 下面直接使用实例介绍spock用法: 1.加入依赖 org.spockframework...测试方法生命周期 junit使用时,主要用以下注解标记测试类方法: @Test :标记需要运行测试方法,一个测试类可以有多个@Test方法; @Before/@After :标记方法,会在每个测试方法运行之前.../之后运行一次; @BeforeClass/@AfterClass :标记方法会在测试类初始化时/销毁时运行spock 没有使用以上注解形式,而是测试类需要继承 Specification 父类...} } 运行结果为: ? spock测试生命周期方法执行顺序 3....测试方法格式 (1)given … expect … 格式: given语句块为条件,expect为测试期望得到结果,结果为true则通过测试。上面的示例就是这种格式

3.6K31
领券