V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FATEQiang
V2EX  ?  Android

Android 单元测试如何规范

  •  
  •   FATEQiang · 2021-09-22 11:51:17 +08:00 · 4852 次点击
    这是一个创建于 960 天前的主题,其中的信息可能已经有所发展或是发生改变。

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    Android 的单元测试真的难搞啊! 1 、写过很多关于 Android 的单元测试的用例,特别是对老项目新增单元测试用例,发现大多时候,mock 、power pock 也难对代码做单元测试,很多单元测试的用例发现都是“废话”! 2 、Robolectric 虽然能解决 4 大组件的问题,但是真实测试发现写的用例也很鸡肋! 3 、使用 AndroidTest 又依赖环境,更多面向的应该是测试人员。 所以 Android 到底怎样写出有实际意义的测试用例,而不是类似完成 1000 行 6 个用例的 kpi ? 希望有经验的人,给出你们的看法,不再是面向领导编程!!!

    6 条回复  ?  2021-09-22 22:56:34 +08:00
    ahao99
        1
    ahao99  
       2021-09-22 14:46:43 +08:00
    把业务相关的代码抽取出单独的 Java 代码,针对 JAVA 代码写 UT
    Test 是否有意义,取决于你对业务的理解
    FATEQiang
        2
    FATEQiang  
    OP
       2021-09-22 14:52:19 +08:00
    @ahao99 你说得很对,我们很多时候也是 “抽取”,不过感觉真的是开发的负担
    xylophone21
        3
    xylophone21  
       2021-09-22 15:07:40 +08:00
    @ahao99 然而在 Android 端,一般来说业务并不是很多?
    Geele
        4
    Geele  
       2021-09-22 18:09:07 +08:00
    这个需要可测性高的代码,简单来说就是分层。比如 MVVM 中的 ViewModel 主要处理业务逻辑,且不依赖 Android 环境,就可以针对 ViewModel 的业务逻辑做 Java Unit Test (验证函数的输入输出)。反之没有良好的分层,业务逻辑与视图混在一块,我个人理解没办法做单元测试,只能做集成测试或者 UI 测试。
    Helsing
        5
    Helsing  
       2021-09-22 22:43:45 +08:00 via iPhone
    Clean 架构
    vemier
        6
    vemier  
       2021-09-22 22:56:34 +08:00
    集成测试优先
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:38 · PVG 04:38 · LAX 13:38 · JFK 16:38
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com