Java——JUnit_Test 矫情吗;* 2022-12-22 11:17 140阅读 0赞 ## JUnit\_Test,编写一个计算器类,然后对它的功能进行单元测试 ## * **待测试Calculator类:** > 建立Calculator类,实现加减乘除、平方、开方的运算功能,但是故意保留一些Bug; > 建立Calculator测试类,对Calculator的功能进行测试。 public class Calculator { private static int result; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; } public void substract(int n) { result = result - 1; // Bug: 正确的应该是 result =result-n } public void multiply(int n) { } // 此方法尚未写好 public void divide(int n) { result = result / n; } public void square(int n) { result = n * n; } public void squareRoot(int n) { for (;;); // Bug : 死循环 } public void clear() { // 将结果清零 result = 0; } public int getResult() { return result; } } * **测试类** import static org.junit.Assert.*; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; /** * @author GodOuO * */ public class CalculatorTest { private static Calculator calculator = new Calculator(); @Before public void setUp() throws Exception { calculator.clear(); } /** * {@link calculator.Calculator#add(int)} 的测试方法。 */ @Test public void testAdd() { calculator.add(5); calculator.add(5); assertEquals(10, calculator.getResult()); } /** * {@link calculator.Calculator#substract(int)} 的测试方法。 */ @Test public void testSubstract() { calculator.add(5); calculator.substract(5); assertEquals(0, calculator.getResult()); } /** * {@link calculator.Calculator#multiply(int)} 的测试方法。 */ @Ignore("Multiply() Not yet implemented") @Test public void testMultiply() { calculator.add(5); calculator.multiply(5); assertEquals(25, calculator.getResult()); } /** * {@link calculator.Calculator#divide(int)} 的测试方法。 */ @Test(expected = ArithmeticException.class) public void testDivide() { calculator.add(5); calculator.divide(5); assertEquals(1, calculator.getResult());} /** * {@link calculator.Calculator#square(int)} 的测试方法。 */ @Test public void testsquare() { calculator.square(5); assertEquals(25, calculator.getResult()); } /** * {@link calculator.Calculator#squareRoot(int)} 的测试方法。 */ @Test(timeout = 1000) // 等待 public void testsquareRoot() { calculator.square(25); assertEquals(5, calculator.getResult()); }} * **测试结果** ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZE91Tw_size_16_color_FFFFFF_t_70_pic_center] ![在这里插入图片描述][20201120085712189.png_pic_center] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZE91Tw_size_16_color_FFFFFF_t_70_pic_center 1] [源代码(点击此处可查看)][Link 1] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZE91Tw_size_16_color_FFFFFF_t_70_pic_center]: /images/20221120/224b115e68fa429ba9e35a5fb3bd9020.png [20201120085712189.png_pic_center]: /images/20221120/06d1f7f92cf240ef920dc1f7a9e8e555.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dvZE91Tw_size_16_color_FFFFFF_t_70_pic_center 1]: /images/20221120/7bca41a3499647dfa207ecd9e43a2db3.png [Link 1]: https://download.csdn.net/download/GodOuO/13128756
还没有评论,来说两句吧...