-
2024-06-12
-
2024-06-12
-
2024-06-12
-
2024-06-11
-
2024-06-11
更新时间:2024-04-17 14:11:40 发布时间: 作者:文/会员上传 下载docx
2024-06-12
2024-06-12
2024-06-12
2024-06-11
2024-06-11
使用Mockito模拟静态方法
MockedStatic tagHandlerMockedStatic = ();(() -> (anyString())).thenReturn(xxxtagxxx);
处理Mockito注册静态方法范围
在执行 mvn test 时,如果有多个测试方法mock了 () ,会报错,因为静态方法是类级别的,会出现注册多次的情况。可以参考下面两种解法:
1. 使用 @BeforeClass 与 @AfterClass
@BeforeClass 注解方法:只被执行一次;运行junit测试类时第一个被执行的方法@AfterClass 注解方法:只被执行一次;运行junit测试类时最后一个被执行的方法
示例:
@RunWith()public class ContentServiceTest {
@MockDocManageService docManageService;
@InjectMocksContentService contentService;
private static MockedStatic tagHandlerMockedStatic = null;
@BeforeClasspublic static void beforeTest() {tagHandlerMockedStatic = ();(() -> (anyString())).thenReturn(xxxtestTagxxx);}
// 省略测试方法
@AfterClasspublic static void afterTest() {();}
2. 在 try-with-resources 构造中定义模拟
@RunWith()public class ContentServiceTest {
@MockDocManageService docManageService;
@InjectMocksContentService contentService;
@Testpublic void should_returnEmptyList_when_queryContentTags_given_invokeParams() throws Exception {try (MockedStatic tagHandlerMockedStatic = ()) {(() -> (anyString())).thenReturn(xxxtestTagxxx);
// 省略单测方法具体实现...}}
如何mock一条链式调用
public T select(QueryCondition queryCondition) throws Exception {LindormQueryParam params = ();if ((params)) {(xxxInvalid query condition:{}xxx, ());return null;}
Select select = ().from(()).where(()).limit(1);QueryResults results = ();return convert(());}
Mockito提供了形如
().from(()).where(()).limit(1)
链式调用解决办法,mock对象的时候增加参数 RETURNS_DEEP_STUBS
@Testpublic void should_returnNull_when_select_given_invalidQueryCondition() throws Exception {// whenTableService tableService = mock(, RETURNS_DEEP_STUBS);when(().from(anyString()).where(any()).limit(anyInt())).thenReturn(null);Object result = (new QueryCondition());
// (result);}
这天,天气晴朗,小白兔和往常一样,带着竹篮子,开着它那心爱的红色小轿车往郊外采挖萝卜去了。
车子驶出不远,小白兔突然看见前面的'主路上好像有一个黑洞,于是将车靠右停在路边,下车一看,原来是一个下水井的井盖被盗,洞口还向外散发出臭哄哄的气味。小白兔想:“这可不行!多危险啊!要是有人不小心掉进去怎么办?”于是她赶忙从车子后备箱里取出装萝卜用的竹篮子,倒扣在井口盖上,并迅速找到一个硬纸牌,用画笔在上面写了:“小心危险!”这四个醒目的大字,把它固定在竹篮来车方向的一侧。做完这些,小白兔又掏出手机分别给城管和黑猫警长打电话,汇报了这里发生的事。
很快,黑猫警长来到了现场。不一会儿城管也赶了过来,并换上了新井盖。
当天,井盖被盗的案子被黑猫警长侦破。原来是酒老鼠没钱喝酒偷走了井盖。到废品收购站换了钱,又拿钱去酒店换了酒。据说黑猫警长抓它的时候,他酣睡在被窝里酒醉还没醒呢!
第二天,所有废品收购站都接到黑猫警长一个告示:不准收购任何井盖,违者必抓!
此后,城市又恢复了以往的宁静和美丽,井盖再也没有丢过。
《融湖盛景花园》是一个纯居型社区,除了5栋幼儿园,剩下的都是商品住宅,总共是1803户,据悉首批只开1栋1-5单元,大约是888套货量.
据悉,首批推售的这5栋都是2梯6户的配置,推建面约82㎡三房两厅一卫、约94㎡三房两厅两卫及约111㎡四房两厅两卫,共计三种户型。
户型结构设计的是比较常规的,找不出突出亮点,也没有特别想吐槽的地方,只是有些不尽人意的地方,比如厨房、卫生间、阳台都太小了,其它功能间也感觉比较紧凑。
得房率方面,根据公开户型图中的尺寸计算,得房率在之间,咋一看数据表现似乎还可以,但要注意的是这是满打满算的结果,一般来说按照此方法计算得房率至少要达到90%以上才算比较优秀,这个结果确实偏低了一点,但也算是及格的。
朝向方面:整体都可以算是优势朝向,1栋1-3单元也是西南和东南朝向,但有些01-03户型偏西会多一点,04-06户型偏南多一点;1栋4-5单元是正的西南或西南朝向。
对于111㎡户型是否通透这个每个人看法不一样,我对于这种的户型的定义是“伪通透”。
视野:项目北侧相邻的是融湖中心城一期(融湖世纪花园),东侧相邻的是融湖中心城三期(融湖盛世花园),西侧和东侧目前主要以低矮的城中村和传统工业厂房为主。也就是说西边1栋1-3单元西南向会比较好,南边的2栋2-3单元和3栋西南、东南、南视野都还可以,其它的就要么看小区园林,要么看融湖中心城其它建筑。
景观:平湖中心区整体城市面貌比较一般,都没什么太好的景观可言,1栋1-3单元西南方向楼层高一点能看到自然生态景观,但这是建立在西南方向目前没高层建筑的基础上,后续城市更新的楼建起来了可能也会有遮挡。1栋4-5单元的西南就是看小区园林景观的,生态景观会被1栋1-3单间建筑遮挡。
1栋1-3单元的东南户型更多也是看小区园林景观,看生态景观会被2栋4-5单元和3栋遮挡。1栋4-5单元的东南向基本看不到小区园林景观,他是斜着看融湖中心城三期(融湖盛世花园)的。
面对项目中历史遗留的腐化代码,我们都有推倒重来的冲动,但它毕竟经过了长时间的稳定性考验,我们又担心重构之后出现问题。这是我们经常会遇到的境况,当要重构不是非常熟悉的祖传代码,又没有充足的测试资源保障的时候,重构引入缺陷的风险还是很大的。
那如何保证重构不出错呢?Martin Fowler在《重构:改善既有代码的设计》提到:
重构是很有价值的工具,但只有重构还不行。要正确地进行重构,前提是得有一套稳固的测试集合,以帮我发现难以避免的疏漏。即便有工具可以帮我自动完成一些重构,很多重构手法依然需要通过测试集合来保障。
除了需要对业务流程有足够的了解并且熟练掌握各种设计思想、模式之外,单元测试是保证重构不出错的有效手段。当重构完成之后,如果新的代码仍然能通过单元测试,那就说明代码原有正确的逻辑未被破坏,原有的外部可见行为没有发生改变。单元测试给了我们重构的信心与底气。
龙岗区一直是深圳置业圈不温不火的一个行政区,这跟龙岗版图有着很大的关系。龙岗版图呈东西狭长布局,不管将中心区设置在哪,都会出现顾头不顾腚的情况,总不能把中心区设置在中间的“小蛮腰”的位置吧,空间的局限性只会令其发展更艰难。因此,中心能量无法更好地辐射带动每个街道,成为了制约龙岗均衡发展的重要因素之一。
平湖街道地处龙岗西北,再往北就是被称为“世界工厂”的东莞辖区了。龙岗的地形决定了龙岗没办法把有限的时间、精力、资金分摊给各个街道,只能不得已的以大局为重,把更多的资源和精力放在更为广阔的龙东一带,即便是有“小香港”之称的布吉,“深圳第二街道办”的坂田也得不到偏爱,更不要说西部边缘化的平湖了。
▲项目区位示意图,仅供参考
在工业时代,平湖凭借毗邻东莞的优势,吸引了大批中小企业在此聚集的同时,也汇集了大量的打工人,为了更好地满足打工人的居住生活需求,平湖建起了大量自建房,也诞生了不少高人气的商业街区,在那个自身拥有巨大消费需求,大家又对工作环境、生活环境要求都没那么高的时代,平湖的大环境虽然说不上多优质,但也可以说是宜居宜业。
随着传统制造业都在向、转型,而平湖因传统制造业过于密集,距离市区又比较远,营商大环境又逐渐落寞,导致成功转型的企业看不上,转型不了的又因营商成本增加陆续向二三线城市转移,虽然有不少企业选择留下来,并且也都在陆续转型,但新一代的打工人对工作环境、生活环境、居住品质要求也变高了,平湖的城市基本面入不了他们的“法眼”,以至于平湖现在不论是工作圈还是置业圈都没话题热度。
▲平湖中心区一带城市现状面貌,仅供参考
受历史因素影响,20_年2月8号深圳住建局发布的3595个商品住宅小区指导价列表中,平湖就只有25个,这说明平湖地区的商品房化程度是比较低的,基本都是城中村或者传统工业/厂房及物流园区,从深圳国土资源局公示的法定图则也可以很明确的看出这一特点。
即便是现在,平湖中心区一带也还能看到工业时代的影子。项目周边土地开发已经非常饱和,居住大多是自建房,产业也基本以普通工业和一类工业,缺乏新型M0产业元素,后势发展依赖城市更新、依赖传统工业升级。
▲依据深圳国土资源局法定图则绘制,仅供参考。
《融湖中心城》作为片区规模最大,业态最全的百万综合体项目,一定程度上能代表片区最高人居体验,但凭它一己之力也很难改善片区居住环境,很难改变大家对它的认知,需要城市更新合力、配套规划合力!
结合法定图则和城市更新分布来看,《融湖中心城》周边未来的利好还是比较多的,1公里范围内不仅规划有多个商业地块,还规划有写字楼、医院、学校等。以现在的眼光去看确实很难提的起兴趣,但以未来眼光看得的话似乎内心又有点蠢蠢欲动。
▲根据深圳国土规划自然局公示法定图则绘制,仅供参考
旧改对于老城发展的推动不言而喻,像平湖这种成熟的工业老城,旧改实施起来速度会比那些城中村密集的老城快很多,推动城市面貌焕颜、产业升级改造的同时,还能为片区提供大量高品质住宅,优质生活配套,对老城价值重塑、价值再造起到关键性决定因素。
平湖的旧改体量,在全市各街道中处于前列,据不完全统计目前平湖辖区已立项未实施项目多达30多个,拆除重建总用地总面积超过250万㎡,总规划旧改体量超1000万㎡。其中有产业基地,有连片商住群、有商业综合体、有大型市政配套。随着城市更新逐步推进,平湖的城市综合能级将会大幅提升。
▲平湖辖区已立项未实施或正在实施城市更新项目,仅供参考!
对于本项目来说,有两个比较值得大家去关注的旧改。其一是平湖旧“平湖旧墟镇片区城市更新单元”,该项目就是经常被自媒体拿出来说的“平湖枢纽型TOD”,由万科+深铁+特发联合体开发,不仅将建成深圳中北部首个交通枢纽(广深铁路、深惠城际、10、17、18号线),也是未来平湖的活力中心。
项目拆除重建面积约万㎡,开发建设用地面积约万㎡,总建筑面积约万㎡,其中住宅万㎡,商办公及旅馆业约万㎡,地下商业万㎡,公共配套约万㎡。建成后将改善平湖地区的交通条件,成为平湖片区标志性的商业文化办公中心,促进区域城市更新、产业转型和环境品质提升,为“深圳北部新城”建设添华彩。