前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IntelliJ IDEA中怎样使用JUnit4

IntelliJ IDEA中怎样使用JUnit4

作者头像
全栈程序员站长
发布2022-07-07 17:14:23
6810
发布2022-07-07 17:14:23
举报

大家好,又见面了,我是全栈君。

背景

近期參与了一个Anroid医疗项目,当中项目底层有非常多基础类及通讯类,并且非常多涉及复杂的字节操作还有多线程同步及状态机处理。这种项目做一下TDD还是必要的,尽量项眼下期把风险减少一些。

如今的问题是本人使用的是IntelliJ开发的Android项目,刚開始还真不知道怎么下手。在參考了一些资料后。总结了一下IntelliJ中配置JUnit測试环境的步骤,希望对大家有帮助。

环境:

操作系统:Windows 7

IntelliJ版本号:13.1

Android SDK API:19

Java Version:1.7

JUnit 4子版本号:JUnit 4.11(IntelliJ自带)

步骤:

一、在项目的AndroidManifest.xml文件里做例如以下更改:

在application节点下加入

<uses-library android:name=”android.test.runner”/>,如图:

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

在根节点下加入例如以下内容:

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

当中targetPackage跟你所在项目的包名同样(參见你的AppManifest.xml文件顶部:

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

二、为你所在项目加入例如以下jar包引用

1、junit-4.11

2、harmcrest-core-1.3

3、annotations

三、调整项目对jar包的引用顺序

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

做这个调整是由于我们使用的Android API中包括了JUnit 3.8,默认SDK是放在最前面的。否则代码中的Junit会被觉得是Junit 3.8,那你就仅仅能使用Junit 3的測试方式了。

四、在项目文件夹树中,创建一个与src平级的文件夹用于存放全部的測试类。

简单起见我使用的是tests.

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

除了创建文件夹。我们还须要指定新创建的文件夹为測试根文件夹:

右键tests文件夹,选择’Mark Directory As’—>’Test Sources Root’

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

五、在你的測试根文件夹下创建你的測试分类文件夹及详细的測试类

在測试类内部你须要的仅仅是给測试方法加上@Test标注。

六、执行你的測试

1、在代码编辑界面,在你的測试方法体中点击右键,在弹出的菜单中选中以JUnit的方式执行

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

这样的方式很适合刚写完測试。亟待看到某个測试的执行结果的场景。

另一种使用快捷键的方式来单独执行某个測试,我们仅仅须要将文本焦点切换到某个測试方法中,然后在使用组合键Ctrl+Shift+F10就能够达到同上面一样的測试效果。

2、编辑执行Configuration

点击Configurationbutton,在弹出界面中按例如以下步骤创建一个JUnit执行配置

IntelliJ IDEA中怎样使用JUnit4
IntelliJ IDEA中怎样使用JUnit4

在弹出的配置窗体做简单的配置。

详细配置细节请參见本文參考部分的《IntelliJ IDEA对JUnit支持的官方文档》部分。

这样的方式适合于批量运行測试的场景。

回想JUnit3的使用方式

1、让你的測试类继承自Testcase

2、每一个測试方法名必须以小写test为前缀

备注:IntelliJ IDEA已经内部支持JUnit4,Android SDK中也至少对JUnit3做了支持。因此并不须要再从Maven中对JUnit进行依赖管控。

除非你须要使用最新的JUnit中的某项特性。

更新:

2014-10-16: 在开启JUnit4.0功能后项目中涉及Android生命周期的測试类(比方AndroidTestCase)将没有办法执行。原因在于AndroidTestCase这些是由SDK支持的,可是SDK中引用的是JUnit3.8的类库,我的理解是假设你引用的是JUnit4.0,那么在执行时AndroidTestCase这些Android特有的測试依赖的JUnit3.8在执行时是不会载入的。測试执行器尝试载入该类測试时就会报错。 因此,假设你希望在你的项目中測试与Android生命周期相关的类的话,那就仅仅能在项目中摒弃JUnit4。

參考:

在IntelliJ IDEA的项目中开启Annotations

https://www.jetbrains.com/idea/help/enabling-annotations.html

IntelliJ IDEA对JUnit支持的官方文档

https://confluence.jetbrains.com/display/IntelliJIDEA/Unit+Testing+and+Code+Coverage

IntelliJ IDEA提供的JUnit測试的Sample项目

https://github.com/JetBrains/intellij-samples/tree/master/unit-tests-example

ADT中怎样配置JUnit

http://blog.csdn.net/huangbiao86/article/details/6709742

JUnit4測试说明:

http://blog.csdn.net/xuxuxiaojie/article/details/5628671

JUnit4在IntelliJ IDEA中的使用(应该有三篇,可是仅仅有后两篇可见。可能第一篇就是将配置的,可是不可见–有点遗憾)

http://blog.16 .com/xianfuying@126/blog/static/2196000520110932132970/

Android单元測试初探–Instrumentation

http://www.oschina.net/question/54100_27061

IntelliJ IDEA和ADT的持续測试插件Infinitest

http://infinitest.github.io/

ADT中使用JUnit的一个教程

http://www.cnblogs.com/draem0507/archive/2013/04/25/3043557.html

一个老程序猿的Android測试驱动开发实践系列3篇(主要側重界面交互測试)

http://blog.csdn.net/yt7589/article/details/12427185

http://blog.csdn.net/yt7589/article/details/12427185

http://blog.csdn.net/yt7589/article/details/12445283

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116534.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档