Java——JUnit_Test

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());
	}}
  • 测试结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源代码(点击此处可查看)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GodOuO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值