《mac爬坑记》文集说明
就如同文集的命名一样,笔者还是新手,故
- 本文集记载的所有内容,均是日记/笔记性质,面向的读者大概是未来对这些知识有所遗忘的自己吧(笑),有些我个人不熟悉的内容可能会过度展开,如果有别的读者看到已经熟知的内容,或是过于琐碎的口吻,请务必不要介意,跳过就好了
- 文中记录的问题和解决方案均没有在多个终端测试过,不能保证解决方案的准确性,请务必理解思路和本质
- 为了解决问题查找并参考的所有资料均附在末尾
- 若有错漏之处,欢迎各位指正
IDEA安装JUnit插件
IDEA中的JUnit插件是默认安装的,另有一插件JunitGnerator V2.0被广泛提及(虽然笔者认为JUnit本身的功能目前够用)。如果对后者没有需求,可直接跳过这一步;若要在mac的IDEA中安装插件,打开设定中的插件(IntelliJ IDEA->Preferences->Plugins->Marketplace,快捷键为Command + ,)后搜索/查找想要安装的插件install即可。

打开设定 Preferences

查看插件 Preferences->Plugins
为项目配置JUnit
- 根据《阿里巴巴Java开发手册》,“【强制】单元测试代码必须写在如下工程目录:
src/test/java”,在src文件夹下创建test/java目录 - 打开项目结构中的模组根目录(
File->project structure->Modules->Sources,快捷键Command + ;),打开被折叠的包路径,找到刚创建的java文件夹,选中,点击Mark as: 栏中的Tests按钮,将src/test/java设置为本项目的测试根目录。
设置测试根目录 Test Source Folders
设置测试根目录的方法不止这一种,还可以在项目侧边栏中选中工程目录,右键Mark Directory as->Test Sources Root(由于笔者已经完成了设定,图中显示的是Unmark)

设置测试根目录 右键Mark Directory as
- 打开项目结构Modulues中的Dependencies(
File->project structure->Modules->Dependencies,就在根目录右方),点击下方的+按钮(快捷键Command + N),选择1 JARs or directories...,找到IDEA安装路径(mac中默认为System->应用程序/Applications,访达中通过右键->显示包内容可以进行进一步的查看)下的lib中的hamcrest-core-1.3.jar和junit-4.12.jar,点击Open按钮,添加JUnit所需的jar包
访达 IDEA安装路径

访达 右键->显示包内容

访达 IDEA安装路径下的lib
以下是IDEA中的操作截图:

设置依赖包 Dependencies

IDEA安装路径1

IDEA安装路径2 lib文件夹

IDEA安装路径下的lib hamcrest-core-1.3.jar

IDEA安装路径下的lib junit-4.12.jar

IDEA 最终效果
生成测试类
打开src文件夹里面我们想要测试的类,在类里 右键->Go To->Test(快捷键Shift + Command + T)选择Create New Test...,打开测试类生成页面

IDEA 右键生成测试类

Create New Test...
在打开的测试类生成页面中,选择JUnit4作为测试库 Testing library,勾选我们想要测试的方法,点击OK即可生成测试类。
根据《阿里巴巴Java开发手册》,“测试类 命名以它要测试的类的名称开始,以 Test 结尾。”,所以这里的 Student 类的测试类应取名为 StudentTest ,也是我们测试类生成页面的默认Class name

选择测试库 Testing library

勾选需要测试的方法
运行测试类
编写完测试代码后,在测试类外右键即可运行所有测试方法(快捷键Shift + Control + R),在某测试方法右键可选择只运行该测试方法(快捷键相同)。

运行整个测试类

运行单个测试方法
其他注意点
- 输入法是中文/全角标点状态时,可以用
Command + ,打开preferences;但不能用Command + ;打开project structure,必须切换至英文/半角标点,快捷键才会被识别 - 设置测试根目录的第二个方法,可能会因为侧边栏目录自动将test/java显示为test.java包而难以定位java文件夹,故笔者通常使用第一种方法
- 生成测试类时,右键->Go To->Test的有效范围在待测试的类里,拿本文的例子说,只有在public class Student { 这个花括号里面才有效 },如果在类外面会提示找不到可测试的内容(No test subjects found)

