合作者:201631062612 201631062412
代码地址:https://gitee.com/xsszz/WordCount
(1)互审代码情况
主类:Main 功能:实现对输入的命令的判断,将命令分解为字符串数组并传入与之对应的函数中
UI界面:UI 功能:实现高级功能,图形化界面,单独处理一个命令
工具类:tool 功能:提供接口给主类进一步判读字符串,并且将一些多次出现的方法封装起来
方法类:function 功能:执行命令,并且将得到的数据保存在该类中
单元测试类:toolTest 功能:对tool工具类进行单元测试
(2)静态代码检测
初级功能:wc.exe -l -w -c 1.txt
拓展功能: wc.exe -c -w -l -a -s *.c -e 1.txt -o end.txt
高级功能:wc.exe -x
等价类
有效等价类 | 无效等价类 |
(1)字符串(-c,-w,-l,-e,-a,-e,-s) (2)字符串(不带空格) (3)文件路径 (4)文件夹路径 (5)字符串(-o) | (6)非(1)+(3) (7)非(1)+(4) (8)空格
|
测试用例 | 覆盖等价类 | 运行结果 |
-w -l -c 1.txt | (1)(3) | 有效 |
-c -s *.c -o 2.txt | (1)(4)(5) | 有效 |
asd42asdasd | (2) | 有效 |
-1+1 -5 1.txt | (6) | 无效 |
(8) | 无效 | |
-1+2 -5 -s *.c | (7) | 无效 |
(3)单元测试
一、环境配置
使用idea IDE 进行单元测试,首先需要安装JUnit 插件。
1.安装JUnit插件步骤
File-->settings-->Plguins-->Browse repositories-->输入JUnit-->选择JUnit Generator V2.0安装。
2.使用JUnit插件
在需要进行单元测试的类中,使用快捷键alt+insert,选择JUnit test,选择JUnit4。
二、单元测试
代码Demo:
@Test public void testAdd() { assertEquals(2, new UserDao().add(1, 1)); }
1>注意事项:
1、测试方法上面必须使用@Test注解进行修饰。
2、测试方法必须使用public void 进行修饰,不能带有任何参数。
3、新建一个源代码目录用来存放测试代码。
4、测试类的包应该与被测试类的包保持一致。
5、测试单元中的每一个方法必须独立测试,每个测试方法之间不能有依赖。
6、测试类使用Test做为类名的后缀(非必要)。
7、测试方法使用test作为方法名的前缀(非必要)。
2>错误解析:
1、Failure 一般是单元测试使用的断言方法判断失败引起,说明预期结果和程序运行结果不一致。
2、error 是有代码异常引起的,他产生于测试代码本身中的Bug。
3、测试用例是不是用来证明你是对的,而是用来证明你没有错。
3>测试流程:
代码Demo:
@BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void setUpAfterClass() throws Exception { } @Before public void before() throws Exception { } @After public void after() throws Exception { }
1、@BeforeClass所修饰的方法在所有方法加载前执行,而且他是静态的在类加载后就会执行该方法,
在内存中只有一份实例,适合用来加载配置文件。
2、@AfterClass所修饰的方法在所有方法执行完毕之后执行,通常用来进行资源清理,例如关闭数据库连接。
3、@Before和@After在每个测试方法执行前都会执行一次。
4>常用注解
1、@Test(excepted=XX.class) 在运行时忽略某个异常。
2、@Test(timeout=毫秒) 允许程序运行的时间。
3、@Ignore 所修饰的方法被测试器忽略。
4、RunWith 可以修改测试运行器 org.junit.runner.Runner
(1).为所需要测试的单元创建测试实例
选中锁需要创建测试的类,alt+insert
创建后实现所要进行的测试函数
选中测试函数进行测试 测试结果如下
(4)性能优化和测试
性能测试工具选择.JProfiler
JProfiler很容易安装,并且通过向导,你可以选择应用服务器用来运行应用程序。我不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然后运行服务器。在监听会话的过程中,它会提供几个选项,它可以记录内存的使用和CPU的使用率。在查看CPU使用率的同时,可以看到执行路径。这让我看到应用程序大部分时间都花在请求上。我们可以将IntelliJ插件安装到IDE上,那么运行JProfiler会更加便利。
(5)总结
尝试学习了Junit单元测试,以及git代码的打包提交