package com.tsinghuait.beans;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestShoppingCart {
private ShoppingCart sc = null;
@Before//加上@Before的是测试前的代码,方法名不限,但必须加上@Before。
public void setUp() throws Exception {
System.out.println("创建测试环境");
sc = new ShoppingCart();
sc.add("坦克", 120.0);
sc.add("飞机", 180.0);
sc.add("坦克", 120.0);
}
@Before
public void show() {
System.out.println("hahaha");
}
@After//加上@After的是测试后的代码,方法名不限,但必须加上@After。
public void tearDown() {
sc = null;
System.out.println("销毁测试环境");
}
@After
public void goodbye() {
System.out.println("Goodbye");
}
@Test//加上@Test的是测试代码,方法名不限,但必须加上@Test。
public void testAdd() {
//fail("Not yet implemented");
sc.add("大炮", 15.5);
assertEquals("大炮", sc.getItems().get(2).getName());
assertEquals(15.5, sc.getItems().get(2).getPrice());
assertEquals(1, sc.getItems().get(2).getAmount());
sc.add("大炮", 15.5);
assertEquals("大炮", sc.getItems().get(2).getName());
assertEquals(15.5, sc.getItems().get(2).getPrice());
assertEquals(2, sc.getItems().get(2).getAmount());
}
@Test
public void testRemove() {
//fail("Not yet implemented");
assertEquals(2, sc.getItems().get(0).getAmount());
sc.remove("坦克");
assertEquals(1, sc.getItems().get(0).getAmount());
}
@Test
public void testGetTotal() {
assertEquals(420.0, sc.getTotal());
//assertEquals(); 方法可以用作黑箱测试,前一个参数是应该得出的结果,后一个是代码执行的结果。两项比较后相同测试通过
}
}
如果有多个测试,只有全部通过后JUnit窗口上才会显示绿条。有一个未通过都是红色的,Eclipse的JUnit窗口上也会有提示哪项未通过。