第四周小组作业

Posted Bruskiii

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周小组作业相关的知识,希望对你有一定的参考价值。

基本任务

1、小组Github

我们小组成员:袁寅申(组长)、胡聪、何啸轩、王思哲
github地址:https://github.com/YinshenYuan/wcPro

2、PSP表格

3、接口实现

在项目中我负责输入模块的实现,组长给到我函数原型是:

public static String getContent(String inFilePath)
{
    String content = null;
    // TODO read the file content from inFilePath
}

我的设计思路是通过Java的FileReader读取对应路径下的文件,然后用BufferedReader来缓冲文本字节信息,接着用StringBuilder的append()函数去接收,最后通过.toString()返回文本信息。

代码如下:

    BufferedReader bufReader = new BufferedReader(new FileReader(inFilePath));     //BufferedReader can get char from char stream.
			
    int read;    //To get value of reader.read().
    while((read = bufReader.read()) != -1)	   
    {
        stringBuilder.append((char)read);    //Get char one by one.
    }

    content = stringBuilder.toString();	   //Convert char stream to String.
			
    bufReader.close();

    return content;

其中用try{}将以上代码括住,当找不到系统文件或者其他IO问题时,通过catch{}抛出错误信息。

4、测试用例设计

我着眼于输入内容是否能够正常读取,设计了7个测试用例:

public void EnglishTest()    //测试英文字母能否正确读取
public void CharacterTest()    //测试特殊字符能否正确读取
public void NumberTest()    //测试数字能否正确读取
public void LineBreakTest()    //测试换行符能否正确读取
public void BlankTest()    //测试空格符能否正确读取
public void NoCharacterTest()    //测试文件内无字符时能否正确读取

public void NoFileTest()    //测试路径格式输入正确但文件不存在时是否报错

测试方法采用org.junit.Assert.assertEquals()方法,通过预设输出String expect与getContent()得到的内容比对,来判断方法是否返回正确的值。

5、测试结果如图:


(对文件不存在时的报错)

因为函数较简单,我只检测了各式输入类型以及文件不存在时的测试,对于其他异常情况不懂如何测试,比如我想试验函数读取大文件,但是由于对JUnit的使用陌生,并不会使用对应方法。测试质量应该只包含了正确输入的情况。

6、小组贡献

我在小组项目中主要以学习为主,听从组长的分配完成自己的任务,所以评价20%吧。

拓展任务

1、代码规范

阅读了《阿里巴巴 Java 开发手册》,学到了很多,之前搞不懂的就乱来的一些行为也得到了规范,比如命名规则,类名采用 UpperCamelCase ,而方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,这个规范到我的代码命名,还有例如使用4空格来注释而不是tab,以及不要为了缩写牺牲了语义的设置变量名。

2、代码评价

对组员胡聪的代码评价:功能没问题,在命名变量和一些细节方面做的不够好!

String a = "";

这种命名方式只有自己知道什么意思,一定要避免,根据功能设置变量名!

catch (IOException e) 
{
    System.err.println("Failure to create a text!");
    return false;
}		

这里要把IOException e变量输出出来,以方便定位问题!

3、静态测试

小组采用 FindBugs Eclipse plugin作为检查工具,检测后发现,自己在测试函数中存在创建了多余的实例的代码。

4、改正

思考了一下,因为方法是静态方法,直接使用 类名.方法名() 就可以调用方法,更改后如下图:

项目总结

上一次还只能模仿别人代码完成作业,这一次是一点点学习java来独立完成分配的功能,非常有成就感,但是由于函数比较简单没有判断分支,所以编写测试用例只想到8个,离20个还差很远,组长提示我可以去检查效率还有一些偏门的异常,但由于基础还不扎实,暂时做不出来,希望在后续的项目能学到更多!

以上是关于第四周小组作业的主要内容,如果未能解决你的问题,请参考以下文章

第四周小组作业-wordcountpro

第四周小组作业

wordcount第四周小组作业

第四周小组作业

第四周小组作业

第四周WordCount小组作业