根据 SDK 级别忽略 Android 单元测试

2024-03-07

是否有注释或其他方便的方法来忽略特定 Android SDK 版本的 junit 测试?有没有类似Lint注解TargetApi(x)的东西?或者我是否必须手动检查是否使用 Build.VERSION 运行测试?


我认为还没有准备好,但为此创建自定义注释非常容易。

创建您的自定义注释

@Target( ElementType.METHOD )
@Retention( RetentionPolicy.RUNTIME)
public @interface TargetApi {
    int value();
}

覆盖测试运行程序(将检查值并最终忽略/触发测试)

public class ConditionalTestRunner extends BlockJUnit4ClassRunner {
    public ConditionalTestRunner(Class klass) throws InitializationError {
        super(klass);
    }

    @Override
    public void runChild(FrameworkMethod method, RunNotifier notifier) {
        TargetApi condition = method.getAnnotation(TargetApi.class);
        if(condition.value() > 10) {
            notifier.fireTestIgnored(describeChild(method));
        } else {
            super.runChild(method, notifier);
        }
    }
}

并标记你的测试

@RunWith(ConditionalTestRunner.class)
public class TestClass {

    @Test
    @TargetApi(6)
    public void testMethodThatRunsConditionally() {
        System.out.print("Test me!");
    }
}

刚刚测试过,它对我有用。 :)

致谢:有条件地忽略 JUnit 测试 http://blog.xebia.com/2012/10/02/conditionally-ignoring-junit-tests/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据 SDK 级别忽略 Android 单元测试 的相关文章

  • 如何自定义菜单项的背景颜色?

    我正在尝试定制Toolbar的弹出菜单 现在我无法设置菜单项的背景颜色 我的 styles xml 如下所示
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • Cheesesquare:enterAlways 会产生错误的布局

    Adding enterAlways到 Cheesesquare 演示的滚动标志
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • 如何使用 Google Maps for Android V2 处理地图移动结束?

    我想在地图中心更改后立即对地址进行地理编码 如何使用新的 Android 版 Google 地图 V2 处理地图移动 我说的是用户用手指拖动地图的情况 查看新的地图 API Override public void onMapReady G
  • Android 初学者:Android gridview 中的触摸事件

    我正在使用以下代码来使用 gridview 执行操作 稍作修改http developer android com resources tutorials views hello gridview html http developer a
  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • 如何在我现有的 Android 应用程序中使用 Telegram API(包括聊天应用程序)?

    我想使用 telegram API 在我现有的 Android 应用程序中开发聊天功能 我不知道如何实施 我认为 看看Telegram 数据库库 测试版 从这里TDLib https core telegram org tdlib 俄语 但
  • 自定义首选项中的android首选项水平分隔线?

    我创建了自己的自定义首选项对象来扩展首选项 我创建它们只是因为这些自定义数据类型没有首选项 一切正常 但我的自定义首选项没有相同的外观 因为它们缺少系统首选项对象具有的水平分隔线 我已经查找了创建水平分隔线的代码 但我找不到它是在哪里完成的
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • Android:后台Activity可以执行代码吗?

    后台的活动是否被视为 正在运行 并且可以执行代码 还是处于挂起状态 他们暂停了 活动生命周期 http developer android com reference android app Activity html ActivityLi
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • WorkManager 或 AlarmManager 用于日常请求然后通知工作?

    这是用例 用户设置具有特定时间的每日通知 在指定时间 发出网络请求以获取一些数据 然后使用检索到的数据显示通知 我不确定是否应该使用 AlarmManager 还是 WorkManager 来实现这个用例 据我了解 AlarmManager
  • 我应该释放或重置 MediaPlayer 吗?

    我有自己的自定义适配器类 称为 WordAdapter 并且我正在使用媒体播放器 名为pronounce WordAdapter 类中的全局变量 我有不同的活动 其中每个列表项都有线性布局 名为linearLayout 我正在设置onCli
  • 如何在 Android 中从 WorkManager 取消工作?

    我已经保存了 WorkManagerUUID转换成String在领域数据库中 这是代码 Constraints constraints new Constraints Builder setRequiredNetworkType Netwo
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A

随机推荐

  • 更改 Firebase 实时数据库中的值时如何查看 flutter 应用程序的变化?

    每当我在 Firebase 实时数据库中进行任何更改时 我都会尝试使这些滚动开关更改其值 更具体地说 每当我将 Relay1 Data 的值更改为 0 时 我希望该开关变为非活动状态 我已经尝试并到处寻找 但找不到任何解决方案 bool r
  • 在本地主机上运行的 asp.net 应用程序上使用 https

    我创建了一个 asp net Web 应用程序 其中包含一个名为 Main aspx 的 Web 表单 我正在尝试通过 https 运行该应用程序 由于我没有 SSL IIS 等方面的经验 我在 google 上搜索了如何实现这一目标 但每
  • 如何通过Windows Defender SmartScreen保护? [复制]

    这个问题在这里已经有答案了 我试图防止我的应用程序 安装程序 不会被阻止Windows 智能屏幕保护 我使用 BitRock 并手动签署了我的安装程序 但我总是遇到这个问题 我购买了有效的证书 并且带有时间戳的签名没问题 这是一个商业应用程
  • HTTP 中的 POST 和 PUT 有什么区别?

    背景资料分析 根据RFC 2616 第 9 5 节 https www rfc editor org rfc rfc2616 section 9 5 POST习惯于create资源 POST 方法用于请求源服务器接受请求中包含的实体 作为请
  • 如何从 Base64 编码字符串构造 java.security.PublicKey 对象?

    我有一个来自外部源 Android Store 的 bse64 编码字符串公钥 我需要用它来验证签名内容 如何将字符串转换为 java security PublicKey 接口的实例 如果这有什么区别的话 我正在使用 Java 6 密钥
  • Cocos2d-x:可以使用HTML(UIWebView)吗?

    我正在尝试cocos2d x现在我可以为 Android 构建 Javascript 示例并在浏览器中运行它们 现在我想创建自己的游戏 但由于有 HTML 背景 我宁愿使用 HTML 标签和 CSS 也不愿使用 Javascript 来设置
  • PHPExcel 检查工作表是否存在

    我正在使用 phpExcel 但找不到任何内容来检查工作表是否存在 我想要完成的是这样的事情 if excel gt sheetExists 1 excel gt createSheet 1 sheet excel gt setSheet
  • syscall_table 在 x86_64 内核中的什么位置?

    我正在尝试向 Linux 内核 x86 64 添加新的系统调用 基于本文 http techeclipse com how to linux kernel 其中解释了如何将系统调用添加到内核 x86 该文章说我需要在名为的文件中定义我的系统
  • 警告“演示正在进行时!”的含义

    当我整合Instagram在我的项目中 我得到了image from UIImagePickerController之后我想把它发送到Instagram但是当我发送时image to Instagram by UIDocumentInter
  • 将自定义域映射到 openshift wordpress 博客

    我有一个 openshift wordpress 博客 运行在http blog example rhcloud com http blog example rhcloud com 并在我的 DNS 管理中添加 CNAME 记录 如下所示
  • 我如何知道训练数据足以用于机器学习

    例如 如果我想训练一个分类器 也许是SVM 我需要收集多少样本 有没有一个测量方法呢 知道需要收集多少样本并不容易 不过 您可以按照以下步骤操作 解决典型的机器学习问题 构建一个包含几个样本的数据集 a 有多少个 这取决于您遇到的问题类型
  • 在增量搜索 JS 中设置突出显示文本的样式

    第一个 StackOverflow 问题 哇 关于这段 Javascript 样式的简单问题 Search search keydown function e setTimeout function if search val histor
  • JAVA 中的 PIG UDF 错误 1070

    我创造了UDF UPPER jar文件输入 home GED385 pigScripts GED385 snshadoope1 pigScripts jar tf home GED385 pigScripts UDF UPPER jar g
  • 如何使用 intersphinx 正确链接到 PyQt5 文档?

    我在尝试链接到时遇到了一些麻烦PyQt5 文档 http pyqt sourceforge net Docs PyQt5 using intersphinx 尝试交叉引用任何QtCore类 例如QThread 没有像我预期的那样工作 我已经
  • 在 Elasticsearch 中插入多个文档 - 批量文档格式化程序

    太长了 如何批量格式化 JSON 文件以摄取到 Elasticsearch 我正在尝试将一些 NOAA 数据提取到 Elasticsearch 中并一直在利用NOAA Python SDK https github com paulokuo
  • VS 2013可以安装在Server 2003 R2上吗

    我可以在 Windows Server 2003 R2 上安装 Visual Studio 2013 吗 根据 Visual Studio 2013系统要求 http www visualstudio com en us products
  • 我该如何将 HOME 键绑定为 tmux 前缀?

    有没有办法在 tmux conf 中执行此操作 如果其他一切都配置正确 那么应该很简单 只需将其放入您的 tmux conf set option g prefix Home 注意 除非您手动 获取 您的 tmux conf 对文件的更改仅
  • 在 JavaScript 中提升变量

    据我了解 变量提升是在 Java 脚本中完成的 我无法理解为什么它输出为未定义 do something var foo 2 console log foo do something it prints 2 do something con
  • MVC 5 Bootstrap 模式不起作用

    我仍处于 MVC 学习模式 我需要的一件事是删除确认模式 我想使用 Bootstrap 来做到这一点 我四处搜索并想出了一些例子 我已经看过几次了 但我似乎无法让它发挥作用 我确保已下载最新版本的 Bootstap v3 3 5 并将其保存
  • 根据 SDK 级别忽略 Android 单元测试

    是否有注释或其他方便的方法来忽略特定 Android SDK 版本的 junit 测试 有没有类似Lint注解TargetApi x 的东西 或者我是否必须手动检查是否使用 Build VERSION 运行测试 我认为还没有准备好 但为此创