Software Construction lab 2:总结

本文介绍了如何利用IDEA内置工具测量JUnit测试的代码覆盖率,并概述了软件构造的整体设计流程。强调了防止内存泄漏的方法,如使用不可变内部变量、防御式拷贝返回值,以及使用final关键字。此外,还讲解了checkRep()方法在确保对象状态合规性中的作用,以及读取TXT文件的两种方式。最后,讨论了Java异常捕获的常见做法。

Software Construction lab 2

junit测试代码覆盖率:

​ 代码覆盖率可以使用IDEA自带的工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTShgQvr-1622905245128)(E:\Typora_info\pong\image-20210605214220642.png)]

整体设计流程:

写Spec
根据Spec完成测试用例
实现Graph

防止内存泄漏的方法

1. 内部变量尽量使用immutable的,并设置为私有属性
2. 对于返回值,如果是mutable数据类型,一定要使用防御式拷贝
3. 必要时加上final关键字 

checkRep()的意义

​ 我们定义的每一个对象,都要遵循规约,而checkRep()就是我们检查对象内部属性是否合法的方法。

​ 调用时机:应该在所有方法的最后一行/返回前 调用checkRep() ,不必担心影响程序速度,可以关掉。

读取TXT文件

参考

使用BuffererReader.继承Reader类

public void fileRead() throws Exception {
        File file = new File("D:\\test.txt");//定义一个file对象,用来初始化FileReader
        FileReader reader = new FileReader(file);//定义一个fileReader对象,用来初始化BufferedReader
        BufferedReader bReader = new BufferedReader(reader);//new一个BufferedReader对象,将文件内容读取到缓存
        StringBuilder sb = new StringBuilder();//定义一个字符串缓存,将字符串存放缓存中
        String s = "";
        while ((s =bReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格
            sb.append(s + "\n");//将读取的字符串添加换行符后累加存放在缓存中
            System.out.println(s);
        }
        bReader.close();
        String str = sb.toString();
        System.out.println(str );
    }

​ way2:使用FileInputStream类

private static String getTemplateContent() throws Exception{
    File file = new File("D:\\test.txt");
    if(!file.exists()){
        return null;
    }
    FileInputStream inputStream = new FileInputStream(file);
    int length = inputStream.available();
    byte bytes[] = new byte[length];
    inputStream.read(bytes);
    inputStream.close();
    String str =new String(bytes, StandardCharsets.UTF_8);
    return str ;
}

java异常捕获

java异常捕获

try{
    d = Double.parseDouble(bidPrice);
}catch (Exception e){
    e.printStackTrace();
    //            方法也抛出了异常,交由调用者处理  
    throw new AuctionException("这是由throw关键字抛出的异常");
}


try{
    at.bid("abc");
}catch (AuctionException ae){
    System.err.println(ae.getMessage());
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值