testImplementation 'org.mockito:mockito-inline:3.3.3'
https://www.cnblogs.com/larrydpk/p/12902949.html
Mockito cannot mock/spy because : - final class 问题现象:出现报错,且报错信息如下Mockito cannot mock/spy because : - final class问题发生的原因:低版本类不支持mockfinal类的,我们尝试反编译一下kt代码就知道了。解决方案:将mockito-core的依赖更改为mockito-inlinetestImplementation 'org.mockito:mockito-inline:3.3
Mockito是很常用的测试工具,使用过程中可能会遇到下面的问题:
Mockito cannot mock/spy because : - final class
问题重现:
引入该依赖到项目的maven配置如下:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.3.3</versi
使用
mockito-core 而不是
mockito-all 的 Power
Mock 示例。
问题(参见 pom.xml):
a) 如果 JUnit 在 power
mock-api-
mockito 之前是显式依赖项,则 JUnit 的 Hamcrest 1.3 依赖项会获胜并且测试运行良好。
b) 如果在 power
mock-api-
mockito 之后 JUnit 是显式依赖项,则 power
mock-api-
mockito 的 Hamcrest 1.1 依赖项将获胜,而测试失败。
c) 如果 JUnit 不是显式依赖而是 power
mock-module-junit4 的瞬态依赖,则 power
mock-api-
mockito 的 Hamcrest 1.1 依赖获胜,测试失败。
d) 如果 Hamcrest 1.3 是一个显式依赖项,它就会获胜并且测试运行良好。
Mockito是很常用的测试工具,使用过程中可能会遇到下面的问题:
Mockito cannot mock/spy because : - final class
问题重现:
引入该依赖到项目的maven配置如下:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-...
赠送jar包:powermock-api-mockito2-2.0.9.jar;
赠送原API文档:powermock-api-mockito2-2.0.9-javadoc.jar;
赠送源代码:powermock-api-mockito2-2.0.9-sources.jar;
赠送Maven依赖信息文件:powermock-api-mockito2-2.0.9.pom;
包含翻译后的API文档:powermock-api-mockito2-2.0.9-javadoc-API文档-中文(简体)-英语-对照版.zip;
Maven坐标:org.powermock:powermock-api-mockito2:2.0.9;
标签:powermock、api、mockito2、中英对照文档、jar包、java;
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
双语对照,边学技术、边学英语。
但是在 Kotlin 开发的Android程序中,使用这两个框架真的如在Java中这么好用吗?事实上,许多Kotlin的Android程序员在使用 Mockito 时会遇到一些问题,例如:虽然这上面的问题,都是有解决方法的,但是显而易见的:任何在 Kotlin 上使用 Mockito 进行单元测试的程序员都会踩坑。为什么不提供一个专门针对于 Kotlin 场景下的单元测试呢? 于是就有了 mockk。
解决上述出现的问题
支持 Kotlin,包括其语法糖
目前官方文档给出了一些存在的问题:Power
cd yourprojectdir
npm install puer-
mock
如果您的项目有package.json文件,建议将devDependencies puer-
mock保存到devDependencies 。
cd yourprojectro
已经一个月没写文章了,由于9月份在plan国庆旅行计划,国庆前前后后去了14天旅行,所以没时间写,哈哈。言归正传,上一篇文章《Android单元测试-如何开始?》介绍了几款单元测试框架、Junit&Mockito基本用法、依赖隔离&Mock概念,本篇主要解答单元测试中几个重要问题。在单元测试交流微信群,很多新进来的小伙伴,都会几个大同小异的问题。我们几个老鸟们答完一次又一次(厚颜无耻地把自己算上^_^),笔者是有点不耐烦了,后来就等其他同学回答他们.....其实大家提的问题,归根到底就是“依赖问题”,jvm依赖还是android依赖?用到native方法报错怎么办?静态方法怎么解决?于是呢,笔
Mockito的模拟/存根介绍
本项目的目的是介绍IntelliJ IDEA中Mockito框架和测试模板的较不常见的功能。
我将从模拟/存根的基本内容开始,以便为更高级的内容奠定基础。 他们将帮助我们强调与Mockito合作时我们日常遇到的问题,并提供解决方案:-)
未存根方法的默认行为
如果没有存根,则模拟方法将返回零,错误,空集合或空值-取决于所用方法的返回类型是什么。 它可能导致遇到NullPointerException。
java.lang.NullPointerException
at domain.InvoiceService.issueInvoice(ItemService.java:10)
at domain.a_missing_mock_for_organisation.ItemServiceTest.shouldIssueAnInvoic
thenReject拒绝诺言
检查是否使用给定参数调用了方法( verify )
anything , notNull , anyString , anyOfClass等-更灵活的对比
once , twice , times
转载: https://cloud.tencent.com/developer/article/1756319
最近有个开发同学过来求助说某个系统接受的时候,发现里面的代码几乎没有单元测试,只是对几个DTO做了set/get的测试!看能不能帮忙指导下怎么开展。代码pull下来看了看,写了个demo,顺便解决了两个
Mock方面的
问题,提交上去供开发同学继续写用例。
问题1:static block 静态代码块
这是第一个遇到的
问题。笔者按照一般套路做好
Mockito的三板斧之后开始跑用例,结果发现执行失败。
这个错误可能是由于 Maven 无法从 Maven 中央仓库下载 `mockito-bom` 的依赖项引起的。您可以尝试以下步骤来解决该问题:
1. 确保您的网络连接正常,可以访问 Maven 中央仓库。
2. 清理 Maven 本地仓库,删除 `mockito-bom` 的所有相关文件,然后重新运行您的构建。
3. 检查您的 Maven 设置是否正确配置了代理服务器,如果有,请确保代理服务器设置正确。
4. 将 Maven 的日志级别设置为 DEBUG,以便查看更多详细信息,以确定错误的原因。
另外,您也可以尝试在 `pom.xml` 文件中添加 `mirrors` 元素,将 Maven 中央仓库替换为其他可用的镜像站点,例如阿里云镜像站点。这可能会帮助您解决下载依赖项的问题。