Software Construction lab 2
junit测试代码覆盖率:
代码覆盖率可以使用IDEA自带的工具
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTShgQvr-1622905245128)(E:\Typora_info\pong\image-20210605214220642.png)]
整体设计流程:
防止内存泄漏的方法
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());
}
本文介绍了如何利用IDEA内置工具测量JUnit测试的代码覆盖率,并概述了软件构造的整体设计流程。强调了防止内存泄漏的方法,如使用不可变内部变量、防御式拷贝返回值,以及使用final关键字。此外,还讲解了checkRep()方法在确保对象状态合规性中的作用,以及读取TXT文件的两种方式。最后,讨论了Java异常捕获的常见做法。
1112

被折叠的 条评论
为什么被折叠?



