单元测试

单元测试

211606350曾磊鑫 211606364李冠锐

1.设计思路

  • 针对MathExam的三个方法,设计三个测试方法;
  • 每个测试方法都将每个方法要测试的年级、题目传入MathExam.main()方法中,并将是否运行正常的值返回,看与预期是否一样。

2.部分单元测试代码

@Test
public void testMathExamTwo() throws Exception  {
	String[] input = new String[] {"-n", "10", "-grade", "2"};
	MathExam.main(input);
	assertEquals(true,MathExam.out_boolean());

在这个测试方法中,我们向被测试类传了“-n 10 -grade 2”,通过assertEquals(true,MathExam.out_boolean()); 可以知道是否通过测试,若MathExam能正常运行,则会运行MathExam.out_boolean()方法,并返回true,与预期的true相符合,测试类通过。

3.遇到的问题

if (args1[0].equals("-n")) {
	n = Integer.parseInt(args1[1]);
	grade = Integer.parseInt(args1[3]);
}

在上述判断中,最开始一直在想为什么“args[0]=="-n"”一直不能判断,后来才想起是需要String.equals()这个方法才能判断。


3.单元测试覆盖率


4.结构优化


5.流程图


6.性能调优

调优前:

性能瓶颈:
真的不知道要怎么改才能提高性能。只能讲繁琐的将txt输出到屏幕这段代码删除

调优后:


7.重构

  • MathExam类里的MathExam(str)方法:
    - 在产生三年级的题目里,调用这个重构方法,将中缀式子以“+-×÷”作为分隔符存入ArrayList类型的list中。
    -
原文地址:https://www.cnblogs.com/qq772197793/p/9727093.html