记一个今天遇到的错误
最近在搞 Java 的 mock 测试这一套。先前搞了一下那个 PowerMock 和 UT,然后现在发现 PowerMock 似乎被 Junit5 给甩开了。然后呢,Mockito 趁机而上,本来是 PowerMock 才能 mock 的 static 方法,现在 Mockito 也能 mock 了,而且还是和 Junit5 眉来眼去的,在 GitHub 上更新得也勤快,PowerMock 团队则是心灰意冷。好久不更新了。
话说回来,我遇到的问题是,自己写的 Mockito demo 直接引入两个包就行,一个 Mockito 的,一个 Junit5 的,直接就完事儿了。
1 |
|
在 mock 静态方法的时候调用的是 mockito-core
这个包。这个包是包含在了 mockito-inline
包中的,我们在 resolve mockito-inline
的 dependency 的时候,会同时下载 mockito-core
的包。
并且,如果我们不需要 mock static 方法的时候,我们就不引入 mockito-inline
,而是引入 mockito-core
这个包的。
然后是,问题就是出在了这里。
我自己的 demo 这样导包没问题,但是,同样的导包到公司的项目中,mockito-inline
在 resolve 的时候会自动下载 1.10.10
版本的 mockito-core
包,而不是最新的 4.6.1
版本的。
最后没有办法,我只有在 mockito-inline
中把 mockito-core
给 exclude 掉,然后手动再导入 mockito-core
4.6.1 版本的包,结果果然解决了这个问题。呵。
但是不知道问题出在了哪里,然后今天问了师父,因为快下班了,加上晚上有活动,就暂时还没找到问题究竟是处在了哪里。
说一点题外话,下午师父在看这个问题的时候,另一个同事过来凑热闹,当然,也是个大佬,嫌弃我的屏幕字体太大,呵,我那是保护眼睛。当时还应该更早一点接受沈刚老师的建议的。程序员要注意职业生涯的发展。那位同事说看代码不好看,翻代码不好翻,我:vim。。。
我师父就还好,说了下这个个人习惯。没啥。师父这个人总体上是很好的。为人处世,技术各个方面都比较好。别的同事的导师请食堂吃饭,他直接请了我去外面点了好多像样的硬菜。几百块钱还是要破费的。就是任务不怎么给我分配,倒是我经常会想着去问问题,这一点感觉比学校要好些,学校的老师能够给出我满意的回答的真的很少很少。虽然外面公司也不多。但是师父这样的人就挺好,内敛,符合我对于程序员的期待。
唉,公司沉溺于技术的人真的不多。
师父给我安排的旁边的南大的同事,入职一年多了,多多少少在技术上也能给我一些帮助,但是他的导师,回答问题的时候,那个态度就让我觉得有点不对劲。然后呢,凡事不能只看一面,这里面或许还有一些其他的因果呢?也未可知的。