Robotium创建一个Note的实例

本文提供了一个使用Robotium实现创建Note功能的示例代码。通过对比Appium的实现方式,展示了Robotium更为简洁高效的代码风格。文章包含了两个测试案例:一个是创建中文标题的Note,另一个是创建英文标题的Note。

上一篇文章是用Appium写的创建Note的实例,这里贴出实现同样功能,但是用Robotium来编写的例子,可以看出代码量简洁和少了很多。今后有时间会做一个总结,这里先贴出来以便今后追索。

<pre name="code" class="java">package com.example.android.notepad.test;

import com.robotium.solo.Solo;

import android.test.ActivityInstrumentationTestCase2;
import android.app.Activity;

@SuppressWarnings("rawtypes")
public class TCCreateNote extends ActivityInstrumentationTestCase2{

	private static Solo solo = null;
	public Activity activity;
	
	private static final int NUMBER_TOTAL_CASES = 2;
	private static int run = 0;
	
	private static Class<?> launchActivityClass;

	//对应re-sign.jar生成出来的信息框里的两个值
	private static String mainActiviy = "com.example.android.notepad.NotesList";
	private static String packageName = "com.example.android.notepad";

	static {

		try {

			launchActivityClass = Class.forName(mainActiviy);

		} catch (ClassNotFoundException e) {

			throw new RuntimeException(e);

		}

	}
	
	
	@SuppressWarnings("unchecked")
	public TCCreateNote() {
		super(packageName, launchActivityClass);
	}

	
	@Override
	public void setUp() throws Exception {
		//setUp() is run before a test case is started. 
		//This is where the solo object is created.
		super.setUp(); 
		//The variable solo has to be static, since every time after a case's finished, this class TCCreateNote would be re-instantiated
		// which would lead to soto to re-instantiated to be null if it's not set as static
		if(solo == null) {
			TCCreateNote.solo = new Solo(getInstrumentation(), getActivity());
		}
	}
	
	@Override
	public void tearDown() throws Exception {
		//Check whether it's the last case executed.
		run += countTestCases();
		if(run >= NUMBER_TOTAL_CASES) {
			solo.finishOpenedActivities();
		}
	}

	public void testAddNoteCNTitle() throws Exception {
		
		solo.clickOnMenuItem("Add note");
		solo.enterText(0, "中文标签笔记");
		solo.clickOnMenuItem("Save");
		solo.clickInList(0);
		solo.clearEditText(0);
		solo.enterText(0, "Text 1");
		solo.clickOnMenuItem("Save");
		solo.assertCurrentActivity("Expected NotesList Activity", "NotesList");
		
		solo.clickLongOnText("中文标签笔记");
		solo.clickOnText("Delete");
	}
	
	
	public void testAddNoteEngTitle() throws Exception {
		solo.clickOnMenuItem("Add note");
		solo.enterText(0, "English Title Note");
		solo.clickOnMenuItem("Save");
		solo.clickInList(0);
		solo.clearEditText(0);
		solo.enterText(0, "Text 1");
		solo.clickOnMenuItem("Save");
		solo.assertCurrentActivity("Expected NotesList Activity", "NotesList");
		
		solo.clickLongOnText("English Title Note");
		solo.clickOnText("Delete");
	}
}



### 自定义 Note 注释功能的实现 在 IntelliJ IDEA 中,可以通过配置自定义注释标签(如 `NOTE` 或其他特定标记)来扩展默认的 TODO 功能。以下是具体的实现方式: #### 配置 Patterns 来支持自定义注释 为了使 IDEA 能识别并高亮显示自定义注释标签(如 `NOTE`),需要进入 **Patterns** 设置界面,并添加相应的正则表达式匹配规则[^1]。 1. 打开 IDEA 的设置窗口: - Windows/Linux 用户可通过菜单栏中的 `File -> Settings` 进入。 - macOS 用户可使用 `IntelliJ IDEA -> Preferences`。 2. 导航到 `Editor -> Todo` 页面。 3. 点击右上角的加号按钮 (`+`) 创建一个新的条目。 4. 输入名称(例如 `Note Pattern`),并在下方输入框中填写正则表达式以匹配目标注释形式。例如: ```regex NOTE:\s*(.*) ``` 此正则表达式的含义是匹配任何以 `NOTE:` 开头的内容,并捕获其后的描述文字[^4]。 5. 应用更改后保存退出。 #### 方法级注释模板设定 如果希望每次创建新方法时自动附带指定样式的注释,则需调整对应的代码生成模板[^2]。 - 前往路径 `Settings/Preferences | Editor | File and Code Templates` 下找到 Methods 分区; - 修改现有模板或者新增一条包含所需占位符的新版模板字符串;比如下面这个例子会为每个函数都加上一行带有参数列表摘要以及返回值解释的基础框架: ```java /** * ${param} * @return ${type} */ public ${type} methodName(${params}) { } ``` #### 后缀补全加速编码流程 利用内置或第三方插件提供的 Postfix Completion 特性能够进一步简化日常开发工作流[^3]。对于频繁使用的某些固定结构片段来说尤为有用——只需键入关键字再加上点号即可触发联想提示完成整个语句构建动作而无需逐字敲打出来。 综上所述,在 IntelliJ IDEA 上面除了沿袭传统做法之外还可以借助更多现代化手段来自由定制满足个人需求的理想环境! ```python def example_function(arg): """ arg: Input argument description. Returns: str: Output result explanation here... """ pass ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值