lustdevil 2020-08-03
main
方法对该类中的方法进行测试,这种方法不适用于大型的项目,我们可能需要不断的修改main()
方法从而让它完成测试工作,但是这会破还掉原来的逻辑并且测试成功还是失败都具有偶然性和不易见性。package demo.Junit; import org.junit.Assert; import org.junit.Test; /** * @author :xiaosong * @description:TODO * @date :2020/8/3 16:29 */ public class JunitDemo { @Test public void testSum() { int result = SumUtil.sum(1, 2); Assert.assertEquals(result, 3); } }
@Test public void testSum1(){ int result = SumUtil.sum(1,2); Assert.assertEquals(result, 10); }
junit
对比使用main()
方法的好处显而易见
junit利用了java的注解,除了@Test
之外还有两个常见的注解,@Before
和@After
分别用来测试开始之前做的事情和结束之后做的事情。
package demo.Junit; import org.junit.Assert; import org.junit.Test; import org.junit.After; import org.junit.Before; /** * @author :xiaosong * @description:TODO * @date :2020/8/3 16:29 */ public class JuintDemo { @Test public void testSum() { int result = SumUtil.sum(1, 2); Assert.assertEquals(result, 3); } @Test public void testSum1(){ int result = SumUtil.sum(1,2); Assert.assertEquals(result, 10); } @After public void after(){ System.out.println("测试结束后的工作,比如关闭文件,关闭数据库连接等等"); } @Before public void before(){ System.out.println("测试前的准备工作,比如打开文件,连接数据库等等"); } }
import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({JunitDemo1.class, JunitDemo2.class}) public class TestSuite{ }
package test; import cn.hutool.core.util.NetUtil; import cn.hutool.core.util.StrUtil; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import util.MiniBrowser; /** * @author :xiaosong * @description:TODO * @date :2020/8/3 17:04 */ public class TestJerryMice { /** * 预先定义端口和ip,方便后续进行修改 */ private static int port = 10086; private static String ip = "127.0.0.1"; @BeforeClass public static void beforeClass(){ // 测试之前先看服务是否已经启动了 if (NetUtil.isUsableLocalPort(port)){ //如果端口被占用,以为这服务已经被启动,否则说明服务还没有启动 System.out.println("please start up JerryMice first, then run test"); System.exit(1); } else { System.out.println("Detected JerryMice already start, now begin test"); } } /** * 准备一个工具方法,用来获取网页的返回 */ private String getContentString(String uri){ String url = StrUtil.format("http://{}:{}{}", ip, port, uri); return MiniBrowser.getContentString(url); } @Test public void testHelloJerryMice(){ String html = getContentString("/"); Assert.assertEquals(html, "Hello JerryMice"); } }