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

需要多次VLOOKUP的问题,在Power Query里原来这么简单! | PQ实战

这是一个很常见的问题:要读取的数据需要通过多次vlookup取得,比如下面简化的滚动效益测算问题,先按合同号匹配,如果匹配不到,再按计划号匹配,在Excel里使用2次vlookup函数实现,如下图所示:...当然,你也可以用Table.SelectRows等表筛选的方式来实现,但如果数据量较大,使用这个这种方式可能效率会比较低,且需要写比较长的公式。有兴趣的朋友也可以试一下。...Step-02 合并查询得结果 Step-03 直接展开数据 我们将得到和在Excel里多次使用vlookup函数一样的结果: 对于很多从Excel转向学习Power Query的朋友,一开始的时候可能比较习惯于

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

前端测试驱动开发模式(TDD)快速入门

而不用担心优化过程中又出错 通过测试代码,可以帮助理清楚程序中关键点 也更有利于之后的维护 缺点 加上测试的代码,会适当增加一些工作量 可能会测的不全面 总体来说,如果对一些基数设施的建设,比如基础组件等,需要长期维护的项目...主要用来mock一些东西,比如可以用sinon mock一个假的函数,sinon也可以返回这个函数执行与否。...和 chai,要使用到sinon-chai const chai = require("chai") const sinon = require("sinon") const sinonChai =...模拟函数 如果需要模拟一个函数,可以用sinon去模拟,使用方法:sinon.fake(),并且课已通过这个sinon的called方法判断函数是否被执行。...mocha,chai,sinon的一些高级的用法,还需要通过实践去学习。 另,本文只是对但纯js的测试,react,vue和小程序都有他们自己的ui测试的方案。

2.4K20

前端自动化测试工具 overview

基本上目前前端单元测试就在这两个库之间选了,下面是这两个库的区别,大家可以根据自己的需求进行选择: mocha: 优点: 终端显示友好 灵活,扩展性好 缺点: 自身集成度不高(没有断言,spy,异步等),而且经常要配合Chai,Sinon...Jasmine: 优点: 集成度高,自带BBD,spy,方便的异步支持(2.0) 配置方便 缺点: 相对不太灵活 由于各种功能内建,断言方式或者异步等风格相对比较固定 没有自带mockserver, 如果需要这功能的得另外配置...两者功能覆盖范围粗略可以表示为: Jasmine(2.x) === Mocha + Chai + Sinon - mockserver PS: 个人实际使用后觉得Chai和Sinon毕竟是专门做特定功能的框架...,用 Mocha + Chai + Sinon 这种方式会想对舒爽一点。...当我们有需要在真实浏览器环境中测试时可以考虑这两个框架 测试任务管理工具 Karma ?

2.2K110

单元测试初体验

博客背景:单元测试作为今年的全组通用任务,要求在所有项目中实施,每个人都需要会写单元测试。...测试辅助工具 Sinon Sinon 是一个独立的 JavaScript 测试 spy, stub, mock库,没有依赖任何单元测试框架工程。...API 介绍 辅助工具库 Sinon 主要有三个Api:spy, stub, mock spy 翻译过来的意思是 “监视”。...sinon.js 中 spy 主要用来监视函数的调用情况,sinon 对待监视的函数进行 wrap 包装,因此可以通过它清楚的知道,该函数被调用过几次,传入什么参数返回什么结果,甚至是抛出的异常情况。...如果你曾经听过“mock 对象”这种说法,这其实是一码事 —— Sinon 的 mock 可以用来替换整个对象以改变其行为,就像函数 stub 一样。

1.5K20

前端自动化测试工具 overview

基本上目前前端单元测试就在这两个库之间选了,下面是这两个库的区别,大家可以根据自己的需求进行选择: mocha: 优点: 终端显示友好 灵活,扩展性好 缺点: 自身集成度不高(没有断言,spy,异步等),而且经常要配合Chai,Sinon...Jasmine: 优点: 集成度高,自带BBD,spy,方便的异步支持(2.0) 配置方便 缺点: 相对不太灵活 由于各种功能内建,断言方式或者异步等风格相对比较固定 没有自带mockserver, 如果需要这功能的得另外配置...两者功能覆盖范围粗略可以表示为: Jasmine(2.x) === Mocha + Chai + Sinon - mockserver PS: 个人实际使用后觉得Chai和Sinon毕竟是专门做特定功能的框架...,用 Mocha + Chai + Sinon 这种方式会想对舒爽一点。...当我们有需要在真实浏览器环境中测试时可以考虑这两个框架 测试任务管理工具 Karma ?

1.3K10

【单元测试】--高级主题

外部依赖通常被模拟或存根以确保测试的可重复性。 集成测试: 集成测试涉及多个单元或组件,通常依赖于这些单元或组件的实际实现。因此,它可能需要访问外部资源,如数据库、网络服务或文件系统。 4....它们在开发过程中可以被多次执行。 集成测试: 集成测试通常在单元测试之后,系统集成的阶段执行,以确保组件的集成和协同工作。它们可能需要在开发的后期或准备发布时运行。 6....集成测试: 集成测试也可以自动化,但通常涉及更多复杂性和配置,因为它们需要模拟或设置整个系统或组件之间的连接。 单元测试和集成测试是软件测试过程中的两个关键组成部分。...测试金字塔的概念强调了单元测试的重要性,因为它们可以在早期阶段捕获大部分问题,而不需要太多的资源和时间。随着测试层次的上升,测试的覆盖范围扩大,但执行的频率逐渐减小。 2....路径覆盖(Path Coverage): 确保每个可能的执行路径都被覆盖,通常需要相对较多的测试用例。 测试覆盖率有助于确定测试的完整性和有效性。

19020

写给精明Java开发者的测试技巧

我们在过去已经就这个问题的某些方面讨论了很多次。从 “在构建过程中使用集成测试的正确方式” 到谈论“在单元测试中恰当地模拟环境”, 再到“ 代码覆盖率以及如何找到哪些是你真正需要测试的代码”。...最后,我们需要断言(Assert)测试系统是否已经生成了期望的结果。...对于某些特定类型的存根来说,Spy是至关重要的。 Stub(存根)是一个对象,它可以在客户端触发某种请求时,提供特定的已经存储的响应,例如,针对输入存根已经有通过预编程生成的响应。...当编写软件时,一种最佳实践是重构那些通用的代码片段,将其放入单独的方法中,那么这些方法就可以在代码中被调用很多次。这样做很有意义,因为我们只编写一次代码,然后也只需要测试一次。...另外,如果我们只需要将代码片段编写一次,我们也可以避免由于编写很多次带来的拼写错误。要当心复制粘贴!

2.1K10

gRPC四种类型示例分析【知识笔记】

; int32 elapsed_time = 4; } 三、代码结构 编译工具生成了Protobuf定义的Message对应的类和Builder类、gRPC服务端对外提供的接口、客户端调用服务端的存根....build(); } // @3 将自定义实现的RouteGuideService注册到Server 实现gRPC服务接口 编译工具生成了gRPC服务端对外提供的接口,我们使用时需要实现该接口即可...RouteGuideGrpc.RouteGuideImplBase由编译器生成Server端接口类 // @2 RouteGuideService由用户实现的类处理Server端业务逻辑 小结:在服务端我们需要做实现生成的服务接口...客户端通过存根发起RPC调用,由服务端多次调用onNext回调客户端完成响应。...features.size()); Point point = features.get(index).getLocation(); // print // @6 多次调用

2.2K20

【Web技术】639- Web前端单元测试到底要怎么写?

这么简单的界面和业务逻辑,还是真实场景吗,还需要写神马单元测试吗? 别急,为了保证文章的阅读体验和长度适中,能讲清楚问题的简洁场景就是好场景不是吗?慢慢往下看。...单元测试部分介绍 先讲一下用到了哪些测试框架和工具,主要内容包括: jest ,测试框架 enzyme ,专测 react ui 层 sinon ,具有独立的 fakes、spies、stubs、mocks...export function* onGetBizTableData() { /* 先获取 api 调用需要的参数:关键字、分页信息等 */ const {keywords} = yield...actions.putBizTableDataFailResult()); } } 不熟悉 redux-saga 的童鞋也不要太在意代码的具体写法,看注释应该能了解这个业务的具体步骤: 从对应的 state 里取到调用 api 时需要的参数部分...from 'sinon'; import { fetcher } from '@/utils/fetcher'; import * as api from '@/services/bizApi';

3K30

如何模拟一个XMLHttpRequest请求用于单元测试——nise源码阅读与分析

概述 在我们进行单元测试的过程中,如果我们需要对一些HTTP接口进行相关的业务测试,那么我们就需要来模拟HTTP请求的发送与响应,否则我们就无法完成测试的闭环。...Sinon中引用的HTTP模拟框架nise。...nise的设计思路是怎么样的 nise的API接口与使用方法 想要了解nise的设计思路,我们就需要先看下nise的使用方法。...而我们在进行HTTP相关测试时,参数是由我们传入的,因此不需要进行验证。所以我们最终需要验证的其实是callback中的处理逻辑和结果。因此,我们可以通过以下一个示例来看下它如何与业务代码进行结合。...附录 Sinon.js nise 我folk的nise

2.5K10

用 jest 单元测试改善老旧的 Backbone.js 项目

这位 @captbaritone 小哥提供了一个很好的讲解视频 (需要科学上网 https://www.youtube.com/watch?...e.currentTarget.id; if (cityId){ ... } } } 组件的提取 目标项目的很多页面,没有合理的封装出子组件,而仅仅是把需要复用部分的...测试 Backbone.View 组件 比之于测试 react 还需要 enzyme 等的支持,测试 Backbone.View 其实要简单许多,只需要获取到其 $el 属性,调用 jQuery 的惯有方法即可...$el.find('.multi').length).toEqual(0); }); 对方法调用的测试 自然还是用 sinon 来做: it('应正确响应事件回调并加载子模板', function()...{ //模拟的返回数据 const server = sinon.createFakeServer(); server.respondImmediately = true; //立即返回

3.4K10

【单元测试】--工具与环境

TestCase 数据: NUnit 允许将不同的测试参数作为 TestCase 提供,这使得可以使用相同的测试方法多次运行,测试不同的输入值。...安装 Moq NuGet 包: 在 NUnit 项目中,首先需要安装 Moq NuGet 包。你可以使用 NuGet 包管理器或命令行工具来执行此操作。...创建存根对象: 在单元测试中,首先创建一个存根对象,它将代替真实的外部依赖。...配置存根对象的行为: 使用 Setup 方法来配置存根对象的行为。你可以指定当调用存根对象的某个方法时应返回什么值。 5....单元测试环境设置需要安装并配置相应的测试框架,例如NUnit。模拟和存根可用于模拟外部依赖或虚拟对象的行为,以隔离被测代码。持续集成和自动化测试帮助确保代码质量,允许快速发现问题。

32050
领券