- 单元测试框架PowerMock
yzh_1346983557
Spring测试单元测试PowerMock
目录一、为何用?二、powermock的使用1.引入依赖2.单测代码1.普通public方法2.模拟构造器和final方法3.模拟static静态方法4.局部的final、private方法模拟其它Springboot集成测试:一、为何用?Mockito是一个针对Java的单元测试模拟框架,它与EasyMock和jMock很相似,都是为了简化单元测试过程中测试上下文(或者称之为测试驱动函数以及桩函
- 用powermock编写单元测试
左弦月
单元测试
1、pom文件引入jar包org.springframework.bootspring-boot-starter-testtestjunitjunittestorg.powermockpowermock-module-junit42.0.2testorg.powermockpowermock-api-mockito22.0.2testcom.github.jsonzoujmockdata4.1.2
- PowerMock简介
SeanPenn
Java单元测试框架主要有JUnit和TestNG,常用的Mock框架主要有EasyMock、Mockito和JMock等,那么为什么还要有PowerMock呢?实际上,PowerMock并不是发明了一套新的Mock框架,而是在原有的几种框架基础上进行扩充,补充完成原有框架所不能完成的工作,从PowerMock的ReadMe文档中可以看出这点:PowerMockisaframeworkthat
- 基于Spring Boot和Junit4的单元测试进阶教程
文景大大
一、教程目标学会基于AssertJ的断言技术;学会基于AssertJ-DB的数据库断言技术;学会基于JMockit的mock技术;学会内存和数据库的造数;学会集成Maven进行单元测试、集成测试的执行;学会查看测试覆盖率;二、断言技术断言库包含很多,比如junit自带的、hamcrest等,这里推荐使用AssertJ,看它的官网就知道了,宣称fluentassertionsjavalibrary。
- 单元测试相关问题
Hiper
找不到Slf4j的报错解决办法:在测试类上添加@MockPolicy(Slf4jMockPolicy.class)lodaerconstraintviolation解决办法:在测试类上添加@PowerMockIgnore("javax.management.**")
- powermockito测试私有方法
M.Rambo
单元测试java服务器单元测试
为什么要写单元测试优点:单元测试可以减少bug率,提升代码的质量。还可以通过单元测试来熟悉业务。公司硬性要求:有些公司可能还会强制要求,每次新增代码、或者变更代码单测覆盖率要达到多少比例才能申请代码合并请求。选择哪个单元测试框架目前应用比较普遍的java单元测试工具junit4+Mock(Mockito、jmock、EasyMock、powermock)。为什么会选择powermock?在做单元测
- test 系统学习-05-test jacoco 测试覆盖率与 idea 插件
老马啸西风
test学习测试覆盖率intellij-idea单元测试测试工具
1.idea中使用mavenjmockit,如何查看增量的代码覆盖率在使用Maven和JMockit进行单元测试时,你可以结合使用JaCoCo插件来查看增量的代码覆盖率报告。JaCoCo是一个流行的代码覆盖率工具,它与Maven集成良好,并且可以与JMockit一起使用。下面是在IntelliJIDEA中使用Maven和JMockit来查看增量的代码覆盖率的步骤:确保你的Maven项目已经正确配置
- test mock-03-wiremock 模拟 HTTP 服务的开源工具 flexible and open source API mocking
老马啸西风
testhttp开源网络协议单元测试unittesting
拓展阅读test之jmockit-01-overviewjmockit-01-test之jmockit入门使用案例mockito-01-overviewmockito简介及入门使用PowerMockMockServerChaosBlade-01-测试混沌工程平台整体介绍jvm-sandbox入门简介wiremockWireMock是一个流行的开源工具,用于API模拟测试,每月下载量超过500万次。
- mockito加junit实现单元测试笔记
minge0001
java单元测试
目录一、简介1.1单元测试的特点1.2mock类框架使用场景1.3常用mock类框架1.3.1mockito1.3.2easymock1.3.3powermock1.3.4JMockit二、mockito的单独使用2.1mock对象与spy对象2.2初始化mock/spy对象的方式初始化mock/spy对象第1种方式初始化mock/spy对象第2种方式初始化mock/spy对象第3种方式2.3参数
- springboot测试类如何自动注入
MrHamster
spring
在我们需要写单测的时候,因为环境配置或者其他问题,需要自动注入某些类,有时候我们会使用mockito或jmockit等工具进行模拟,但是模拟有时候也不能很好的生效,所以这个时候我们可以通过注解,设置在运行类的时候,启动整个springboot项目,从而达到自动注入的效果,在测试方法运行结束后,springboot项目也就会关闭了。在测试类上加上这个注解即可,就可以使用@Autowired注解了@R
- java 不同场景下的单测代码示例
kubeclub
单元测试kubeclubjmockit
笔者的文章同时发布于kubeclub云原生技术社区,一个分享云原生生产经验,同时提供技术问答的平台,前往查看前言以下所有的样例代码都是基于junit5+jmockit(推荐的单测基础框架选型),大部分是基于项目的真实代码片段POM依赖说明//主要pom说明<!--自己封装的工具类-->cn.kubeclubfastjunit1.0.1-releaseorg.jmockitjmockit
- SpringBoot单元测试及JMockit使用
愚愚是个大笨蛋
SpringBoot单元测试springboot
SpringBoot单元测试及JMockit使用记录一下我总结的SpringBoot单元测试的方法。1、功能方法代码首先贴一下用到的代码:1、目录结构2、pom.xml文件4.0.0com.java.ccsspringboottest1.0-SNAPSHOT1.85.2.0.RELEASEorg.springframework.bootspring-boot-starter-parent2.1.2
- Jmockit的使用总结
愚愚是个大笨蛋
JMockit单元测试
前言Deencapsulation.newUninitializedInstance(clazz)跳过构造函数创建对象我几乎都是参考JMockit中文网学习的Jmockit。在这必须得强烈安利一下啊。其实我刚开始看文档的时候,MockUp、@Mock、@Test、@Mocked、@Injectable、@Capturing、Expectations、Verifications那么多注解和类,傻傻分
- jmockit使用环境部署
花菜回锅肉
使用jmockit是由于工作中项目需要,要将这套测试环境搭建起来,结果花了一天时间,搜了N个教程,都以失败而告终。遇到的问题如下:按照网上的教程引入jmockit和junit的jar包,但是注解@Mocked和@Test死活不能用@Mocked修饰的实例死活不能在录制(Expectations)和验证(Verifications)内部类里使用后来经过自己的摸索和stackoverflow网站上的检
- 单元测试实践思考(junit5+jmockit+testcontainer)
陈晨_软件五千言
背景之前整理过一篇,基于(SpringCloud+Junit5+Mockito+DataMocker)的框架整理的单元测试。当时的项目是一个编排层的服务项目,所以没有涉及到数据库或者其他中间件的复杂问题。而且是项目刚开始,代码环境不复杂,当时的架构基本上能够满足需求。最近在一个较老项目,现在希望加强项目的代码质量,所以开始引入单元测试框架。于是乎先按照原本的设计引入了junit5的整套框架,同时引
- 转-AOP动态代理解析6-cglib代理的实现
小陈阿飞
https://www.cnblogs.com/wade-luffy/p/6077494.htmlCGLIB是一个强大的高性能的代码生成包。它广泛地被许多AOP的框架使用,例如SpringAOP和dynaop,为他们提供方法的Interception(拦截)。EasyMock和jMock是通过使用模仿(moke)对象来测试Java代码的包。它们都通过使用CGLIB来为那些没有接口的类创建模仿(mo
- JMockit官方文档:伪造Facking-part 3 伪造没有指定实现的类
yethyeth
为了展示这个特性,参考下面这个例子:publicinterfaceService{intdoSomething();}finalclassServiceImplimplementsService{publicintdoSomething(){return1;}}publicfinalclassTestedUnit{privatefinalServiceservice1=newServiceImpl
- jmockit使用的坑(with IDEA)
xerjava
jmockitjmockitIDEA
1.问题:编译org.omg无法识别原因:使用JDK11,某些类被removed掉了,详见https://gunnarmorling.github.io/jdk-api-diff/jdk10-jdk11-api-diff.html解决方法:使用JDK82.问题:Cannotresolvesymbol'jmockit'IDEA原因:引入包名错了解决方法:importmockit.*;3.问题:jav
- androidstudio gradle 解决包冲突的方法
亮亮_be3c
exclue:附录去掉全部依赖//依据构建名称排除excludemodule:'cglib'//依据组织名称排除excludegroup:'org.jmock'//依据组织名称+构件名称排除excludegroup:'org.unwanted',module:'iAmBuggy'eg:去除support-v4包的依赖(去掉全部)configurations{all*.excludegroup:'c
- mock 单元测试模拟数据
好菇娘の当自强
●【编程语言】单元测试mock
前言作为一个程序员,我们工作不可缺少的就是单元测试,当我们依赖第三方时,而三方还没有接口数据给我们时,这时候需要我们mock数据了正文what作为一个单元测试,独立且完整是核心,完整性如何保证,这时候就需要mock了,Mock框架可以很好的将被测功能与其他功能隔离开,市面上有很多的Mock框架,比如Mockito、Jmock、easyMock等。借助这些工具我们可以很轻松的Mock出我们想要的依赖
- 单元测试(UT)工具:一键测试所有Bean/DTO的SetGet方法
Mop.Duan
单元测试java数据库
1、引入依赖引入jmockdatacom.github.jsonzoujmockdata4.1.2test2、引入工具类importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.datab
- 【UT学习】JMockit
xyy_496
学习
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加Part1:MockPart2:PowerMockPart3:Junit提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录一、JMockit1.JMockito的两种测试方式2.Mock流程3.pom依赖4.基于JMockito实现代码覆盖率100%1Mock接口2Mock公共类commo
- 强大的Kotlin也能搞定,测试利器MockK你不能不知道
自由家
软件测试web自动化测试软件测试工具kotlin开发语言android运维正则表达式java测试工具
目录前言:为什么需要MockK关键字MockKotlin的类时报错静态方法如何MockJmockitMockK使用示例普通使用mockkObjectmockkStaticmockprivatemethodContextMock遇到的一些小坑最后前言:MockK是一个强大且易于使用的Kotlinmocking框架,用于编写单元测试和集成测试。它提供了一套简洁而灵活的API,允许您模拟对象的行为、验证
- 软件自动化测试
听微雨
功能测试测试工具
测试的目的:保证软件质量第一章JMock测试框架1.1简介Mock测试是一种常见的测试方法,通常在执行测试的时候,测试代码往往需要与一些真实对象进行交互,又或者被测代码的执行需要依赖真实对象的功能。此时,我们可以使用一个轻量级的、可控制的Mock对象来取代真实对象,模拟真实对象的行为和功能,从而方便我们测试。jMock便是这种方法的一种实现。jMock是一个利用Mock对象来测试Java代码的轻量
- 浅谈Jmockit使用
u011119684
转自http://blog.csdn.net/changsu4615/article/details/46802517。如有疑问请联系我删除。最近公司里要求使用Jmockit来辅助单元测试。之前也没接触过,研究了几天,今天就跟大家谈谈我怎么使用Jmockit。写一个小例子供大家参考。如有不对的地方还请大家多多指正对于Mock的作用这里就不详细介绍了,不清楚的可以自行百度。笔者使用的是1.15版本的
- Mockito5.2.0学习
langzitianya
JAVA测试学习Mockito笔记
Mockito是mocking框架,它让你用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。Mockito是一个针对Java的单元测试模拟框架,它与EasyMock和jMock很相似,都是为了简化单元测试过程中测试上下文(或者称之为测试驱动函数以及桩函数)的搭建而开发的工具相对于EasyMock和jMock,Mockito的优点是通过在执行后校验哪些函数已经被调用,消除了
- java使用jUnit,jMockit,dbunit做DAO层单元测试方法
iameyama
Djunit
第一步:准备数据先在MySQL数据库中填写测试数据和期望数据,然后导出到xml文件中。全表导出:DBUnitHelper.exportTable("t_dp_content_02001",TEST_DATA_FILE);条件查询导出:DBUnitHelper.exportQueryTable("t_dp_content_02001","select*fromt_dp_content_02001wh
- 通过Java Agent的redefineClasses实现Mock功能
向南wmco
A)最近组内项目有个模块进行了较大规模的重构,需要跑一下压力测试,看一下性能如何.但是介于产品的模式,在正常场景下需要向通道发送消息,然而在压测中,我们希望这段行为能被mock掉.当时想到的方案可以采用SpringAOP,JMockit或者自己通过Javasisit/ASM这种字节码框架来实现功能.由于项目中我自己很少使用SpringAOP来做一些功能,便没让它当首选方案,研究了一下JMockit
- GitHub 上最受欢迎的 5 大 Java 项目
OSC开源社区
本文列举了GitHub上最受欢迎的5个Java项目,从Mockitos到Guava,以及java-design-patterns等。GitHub上有大约有744K多的Java项目,但是最让开发人员感兴趣的有哪些项目?1.MockitoMockito并不是无酒精混合饮料的意思。Mockito是一个针对Java的mocking框架。它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被
- Mock数据 – Java最好用的工具JMockData
程序之路2020/6/3
本页目录JMockData使用步骤添加Maven依赖随便弄一个实体类JMockData构造数据输出测试结果JMockData高级进阶追加2个字段构造Mock数据时添加一个条件约束测试高级进阶输出JMockDataGithub地址:https://github.com/jsonzou/jmockdataJMockData使用步骤添加Maven依赖com.github.jsonzoujmockdata
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多