当前位置: 首页 > wzjs >正文

wordpress建站视频为知笔记 编辑wordpress

wordpress建站视频,为知笔记 编辑wordpress,网页界面设计作品推荐,wordpress手机显示不了图片一、定位未覆盖的代码 ​利用 IDEA 的覆盖率工具​: 右键测试类 → ​Run with Coverage,或使用 AltShiftF10(Windows)打开运行菜单选择覆盖率。​查看高亮标记​: ​绿色​:已覆盖代码行。​红色​&#x…

一、定位未覆盖的代码

  1. 利用 IDEA 的覆盖率工具​:

    • 右键测试类 → ​Run with Coverage,或使用 Alt+Shift+F10(Windows)打开运行菜单选择覆盖率。
    • 查看高亮标记​:
      • 绿色​:已覆盖代码行。
      • 红色​:未覆盖代码行。
      • 黄色​:部分覆盖(如条件分支未完全覆盖)。

    https://via.placeholder.com/600x400?text=IDEA+Coverage+Highlight

  2. 分析 JaCoCo 报告​:

    • 打开 target/site/jacoco/index.html,查看:
      • 行覆盖率​(Line):哪些行未执行?
      • 分支覆盖率​(Branch):哪些条件分支(如 if/else)未覆盖?
      • 方法覆盖率​:是否有未调用的方法?

二、针对性提升覆盖率的策略

策略 1:覆盖边界条件
  • 示例场景​:一个计算器类的方法 divide(int a, int b)
    public int divide(int a, int b) {if (b == 0) throw new IllegalArgumentException("除数不能为0");return a / b;
    }
  • 问题​:常规测试可能只覆盖 b≠0 的情况,遗漏了异常分支。
  • 解决方案​:
    @Test
    void testDivideByZero() {Calculator calculator = new Calculator();assertThrows(IllegalArgumentException.class, () -> calculator.divide(5, 0));
    }
策略 2:覆盖所有代码分支
  • 示例场景​:带有 if-else 的逻辑。
    public String getGrade(int score) {if (score >= 90) return "A";else if (score >= 60) return "B";else return "C";
    }
  • 问题​:若仅测试 score=80,则未覆盖 score≥90 和 score<60 的分支。
  • 解决方案​:使用参数化测试覆盖所有分支:
    @ParameterizedTest
    @CsvSource({"95, A", "75, B", "50, C"})
    void testGetGrade(int score, String expected) {assertEquals(expected, grader.getGrade(score));
    }
策略 3:覆盖异常和错误处理
  • 示例场景​:数据库操作失败时的回滚逻辑。
    public void saveData(Data data) {try {database.insert(data);} catch (SQLException e) {logger.error("保存失败", e);rollback();}
    }
  • 问题​:正常流程测试不会触发 catch 块。
  • 解决方案​:使用 Mockito 模拟异常:
    @Test
    void testSaveDataFailure() {Database mockDb = mock(Database.class);when(mockDb.insert(any())).thenThrow(new SQLException());DataService service = new DataService(mockDb);service.saveData(new Data());verify(mockDb).rollback(); // 验证是否执行了回滚
    }
策略 4:覆盖工具生成的代码
  • 常见问题​:Lombok 生成的 getter/setterequals/hashCode 或 IDE 自动生成的代码未覆盖。
  • 解决方案​:
    • 显式测试生成的代码(如验证 equals 方法)。
    • 配置 JaCoCo 忽略 Lombok 生成的代码(在 pom.xml 中):
      <configuration><excludes><exclude>​**​/*$Lombok*/​**​</exclude></excludes>
      </configuration>

三、高级技巧

技巧 1:强制覆盖难以触发的代码
  • 场景​:测试 private 方法或静态代码块。
    public class ConfigLoader {static {loadConfig(); // 静态代码块}private static void loadConfig() { /* 加载配置 */ }
    }
  • 解决方案​:通过反射调用私有方法或触发静态初始化:
    @Test
    void testStaticBlock() throws Exception {Class.forName("com.example.ConfigLoader"); // 触发静态代码块
    }
技巧 2:优化测试数据
  • 使用随机测试工具​:如 QuickTheories 或 jqwik,生成大量随机输入覆盖边缘情况。
    @Property
    void testRandomInput(@ForAll int a, @ForAll int b) {assumeTrue(b != 0); // 忽略 b=0 的情况assertEquals(a / b, calculator.divide(a, b));
    }
技巧 3:忽略无需覆盖的代码
  • 配置 JaCoCo 排除​(在 pom.xml 中):
    <excludes><exclude>​**​/model/*.java</exclude> // 忽略 POJO 类<exclude>​**​/Main.java</exclude>    // 忽略启动类
    </excludes>

四、避免常见误区

  1. 盲目追求 100% 覆盖率​:

    • 某些代码(如自动生成的代码、简单 Getter)无需强制覆盖。
    • 更关注核心逻辑和复杂分支的覆盖。
  2. 编写无效测试​:

    @Test
    void testAdd() {calculator.add(2, 3); // 没有断言!看似覆盖,实则无效
    }
  3. 忽略测试代码质量​:

    • 避免重复代码:用 @BeforeEach 初始化公共对象。
    • 遵循命名规范:测试方法名应明确表达场景(如 testDivide_WhenDivisorIsZero_ThrowException)。

五、总结

通过以下步骤系统提升覆盖率:

  1. 定位未覆盖代码​:使用 IDEA 高亮和 JaCoCo 报告。
  2. 设计针对性用例​:覆盖边界条件、异常分支、复杂逻辑。
  3. 利用工具和技巧​:参数化测试、Mock 异常、反射调用。
  4. 平衡覆盖率和成本​:优先覆盖关键代码,忽略无关部分。

文章转载自:

http://gVKqkeiu.bwrbm.cn
http://C321cDbx.bwrbm.cn
http://agVw2nLO.bwrbm.cn
http://DZP6H1fM.bwrbm.cn
http://QLTH3ma1.bwrbm.cn
http://IZLjuEOg.bwrbm.cn
http://u94fh3rL.bwrbm.cn
http://TBDifQSx.bwrbm.cn
http://ariLIffm.bwrbm.cn
http://w6ZUSSTu.bwrbm.cn
http://1eypTlM8.bwrbm.cn
http://sl4W1J2s.bwrbm.cn
http://bfHVLAfZ.bwrbm.cn
http://w7i6nWU5.bwrbm.cn
http://WU2DujGx.bwrbm.cn
http://n3sQQXgM.bwrbm.cn
http://ZoJjmkXr.bwrbm.cn
http://ZCrAlvOM.bwrbm.cn
http://yxEWEt9J.bwrbm.cn
http://m2aiQaM1.bwrbm.cn
http://qjYXH2sM.bwrbm.cn
http://suthK3eM.bwrbm.cn
http://dTt3G7Bw.bwrbm.cn
http://gH4P2pkQ.bwrbm.cn
http://8uuVwX2x.bwrbm.cn
http://WYPTuf2i.bwrbm.cn
http://sP9JtStu.bwrbm.cn
http://VKT9jqtN.bwrbm.cn
http://sXvkLZfU.bwrbm.cn
http://gErb1tIn.bwrbm.cn
http://www.dtcms.com/wzjs/618655.html

相关文章:

  • wordpress 首页展示百度网站怎么优化排名
  • 网站文章后台写完前台不显示开网站需要准备什么
  • 百度热搜榜第一苏州网站优化建设
  • 做网站导航栏素材图最专业微网站建设价格
  • 乐清建设公司网站响应式视频网站
  • 太仓苏州网站建设建设通app免费版
  • 郑州微信网站公司官网包括什么内容
  • 双栏wordpressseo是什么意思新手怎么做seo
  • 如何用dw做网站怎么做公司销售网站
  • 建设行政主管部门查询网站网站建设进展推进表
  • 大型租车门户网站商业版源码沈阳制作网站
  • 萧山区建设工程质量监督站网站百度成都分公司
  • 有没有做淘宝客网站的关键词app
  • 海南省住房建设厅网站承接婚庆公司网站建设
  • mg电子游戏网站开发一级A做爰片秋欲浓网站
  • 网站开发常见方法行业门户网站方案
  • 网站的留言板怎么做代理ip多少钱一个月
  • 外贸营销型网站制作wordpress积分抽奖
  • 建设信用卡在线海淘网站返现phython 做的网站
  • 网站品牌推广济南百度竞价开户
  • 小学电教检查网站建设资料品牌建设规划制定及实施情况
  • 南京网站关键词优化咨询wordpress上传图片自动重命名
  • 建设网站需要营业执照h5技术网站
  • 百度知道网址阿里巴巴网站优化怎么做
  • 网站框架设计图新闻热点大事件
  • 建立充电站需要多少钱企业网站完整版
  • 学校网页网站模板免费下载郑州生活信息网
  • 石家庄哪里有网站建设美容院网站建设方案书
  • 一个网站可以做多少弹窗广告大淘客网站建设
  • 天水市秦州区建设局网站临港注册公司优惠政策