分享

Junit的基本使用(详解)

 liang1234_ 2020-03-28

什么是Junit?

Junit是xUnit的一个子集,在c++,paython,java语言中测试框架的名字都不相同

xUnit是一套基于测试驱动开发的测试框架

其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性

java所用的测试工具是Junit,Junit不需要去网上下载,在ecliplse中有:

1.新建一个工程

2.工程右键,点击Properties

3.


4.


5.


6.


7.



这是使用Junit最先要完成的 在完成了这个就进入下一步吧!

来简单使用一下Junit!

新建一个类:Calculate

  1. package com.fulisha.textjunit;
  2. public class Calculate {
  3. public int add(int a,int b){
  4. return a+b;
  5. }
  6. public int substract(int a , int b){
  7. return a-b;
  8. }
  9. public int cheng(int a,int b){
  10. return a*b;
  11. }
  12. public int chu(int a, int b){
  13. return a/b;
  14. }
  15. }

再新建一个测试类

  1. package com.fulisha.textjunit;
  2. import static org.junit.Assert.*;
  3. import org.junit.Test;
  4. public class CalculateTest {
  5. @Test
  6. public void testAdd(){
  7. assertEquals(6,new Calculate().add(3, 3));
  8. }
  9. @Test
  10. public void testsubstract(){
  11. assertEquals(2,new Calculate().substract(5, 3));
  12. }
  13. @Test
  14. public void testcheng(){
  15. assertEquals(15,new Calculate().cheng(5, 3));
  16. }
  17. @Test
  18. public void testchu(){
  19. assertEquals(2,new Calculate().chu(6, 3));
  20. }
  21. }

测试后的结果:


对此进行总结:

1.测试方法上必须使用@Test

2.测试方法必须使用 public void进行修饰

3.新建一个源代码目录来存放测试代码

4.测试类的包应该和被测试类的包一样

5.测试单元中的每个方法一定要能够独立测试,其方法不能有任何依赖

如果,测试的方法多,不想一个个的建立测试方法那么:

1.选择要测试的方法,右击New  选择other


2.


3.


4.


5.


6.


7.创建结果

  1. package com.fulisha.textjunit;
  2. import static org.junit.Assert.*;
  3. import org.junit.Test;
  4. public class CalculateTest3 {
  5. @Test
  6. public void testAdd() {
  7. fail("Not yet implemented");
  8. }
  9. @Test
  10. public void testSubstract() {
  11. fail("Not yet implemented");
  12. }
  13. @Test
  14. public void testCheng() {
  15. fail("Not yet implemented");
  16. }
  17. @Test
  18. public void testChu() {
  19. fail("Not yet implemented");
  20. }
  21. }

再在这个基础上进行修改测试类方法

在测试中结果中关于Failure和error的解释

1.Failure 一般由测试单元使用断言方法判断失败引起的,这个报错,说明测试点发现了问题,即程序输出的结果和我们预期的不一样

2.error 是由代码异常引起的,它可以产生代码本身的错误,也可以是测试代码中的一个隐藏bug

!!!测试用例不是用来证明你是对的,而是用来证明你没错

关于Junit运行流程

  1. package com.fulisha.textjunit;
  2. import static org.junit.Assert.*;
  3. import org.junit.After;
  4. import org.junit.AfterClass;
  5. import org.junit.Before;
  6. import org.junit.BeforeClass;
  7. import org.junit.Test;
  8. public class JunitFlowText {
  9. @BeforeClass
  10. public static void setUpBeforeClass() throws Exception {
  11. System.out.println("this is beforeClasss....");
  12. }
  13. @AfterClass
  14. public static void tearDownAfterClass() throws Exception {
  15. System.out.println("this is afterClasss....");
  16. }
  17. @Before
  18. public void setUp() throws Exception {
  19. System.out.println("this is brfore....");
  20. }
  21. @After
  22. public void tearDown() throws Exception {
  23. System.out.println("this is after....");
  24. }
  25. @Test
  26. public void test1() {
  27. System.out.println("this is test1....");
  28. }
  29. @Test
  30. public void test2() {
  31. System.out.println("this is test2....");
  32. }
  33. }

运行结果:



总结:

@BeforeClass

修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在一份实例,他比较适合加载配置文件(针对所有测试,只执行一次 )

@AfterClass

所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次 )

@Before和@After 会在每个测试方法前后各执行一次

@Test:测试方法,在这里可以测试期望异常和超时时间

@Ignore:忽略的测试方法  什么是Junit?

Junit是xUnit的一个子集,在c++,paython,java语言中测试框架的名字都不相同

xUnit是一套基于测试驱动开发的测试框架

其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性

java所用的测试工具是Junit,Junit不需要去网上下载,在ecliplse中有:

1.新建一个工程

2.工程右键,点击Properties

3.


4.


5.


6.


7.



这是使用Junit最先要完成的 在完成了这个就进入下一步吧!

来简单使用一下Junit!

新建一个类:Calculate

  1. package com.fulisha.textjunit;
  2. public class Calculate {
  3. public int add(int a,int b){
  4. return a+b;
  5. }
  6. public int substract(int a , int b){
  7. return a-b;
  8. }
  9. public int cheng(int a,int b){
  10. return a*b;
  11. }
  12. public int chu(int a, int b){
  13. return a/b;
  14. }
  15. }

再新建一个测试类

  1. package com.fulisha.textjunit;
  2. import static org.junit.Assert.*;
  3. import org.junit.Test;
  4. public class CalculateTest {
  5. @Test
  6. public void testAdd(){
  7. assertEquals(6,new Calculate().add(3, 3));
  8. }
  9. @Test
  10. public void testsubstract(){
  11. assertEquals(2,new Calculate().substract(5, 3));
  12. }
  13. @Test
  14. public void testcheng(){
  15. assertEquals(15,new Calculate().cheng(5, 3));
  16. }
  17. @Test
  18. public void testchu(){
  19. assertEquals(2,new Calculate().chu(6, 3));
  20. }
  21. }

测试后的结果:


对此进行总结:

1.测试方法上必须使用@Test

2.测试方法必须使用 public void进行修饰

3.新建一个源代码目录来存放测试代码

4.测试类的包应该和被测试类的包一样

5.测试单元中的每个方法一定要能够独立测试,其方法不能有任何依赖

如果,测试的方法多,不想一个个的建立测试方法那么:

1.选择要测试的方法,右击New  选择other


2.


3.


4.


5.


6.


7.创建结果

  1. package com.fulisha.textjunit;
  2. import static org.junit.Assert.*;
  3. import org.junit.Test;
  4. public class CalculateTest3 {
  5. @Test
  6. public void testAdd() {
  7. fail("Not yet implemented");
  8. }
  9. @Test
  10. public void testSubstract() {
  11. fail("Not yet implemented");
  12. }
  13. @Test
  14. public void testCheng() {
  15. fail("Not yet implemented");
  16. }
  17. @Test
  18. public void testChu() {
  19. fail("Not yet implemented");
  20. }
  21. }

再在这个基础上进行修改测试类方法

在测试中结果中关于Failure和error的解释

1.Failure 一般由测试单元使用断言方法判断失败引起的,这个报错,说明测试点发现了问题,即程序输出的结果和我们预期的不一样

2.error 是由代码异常引起的,它可以产生代码本身的错误,也可以是测试代码中的一个隐藏bug

!!!测试用例不是用来证明你是对的,而是用来证明你没错

关于Junit运行流程

  1. package com.fulisha.textjunit;
  2. import static org.junit.Assert.*;
  3. import org.junit.After;
  4. import org.junit.AfterClass;
  5. import org.junit.Before;
  6. import org.junit.BeforeClass;
  7. import org.junit.Test;
  8. public class JunitFlowText {
  9. @BeforeClass
  10. public static void setUpBeforeClass() throws Exception {
  11. System.out.println("this is beforeClasss....");
  12. }
  13. @AfterClass
  14. public static void tearDownAfterClass() throws Exception {
  15. System.out.println("this is afterClasss....");
  16. }
  17. @Before
  18. public void setUp() throws Exception {
  19. System.out.println("this is brfore....");
  20. }
  21. @After
  22. public void tearDown() throws Exception {
  23. System.out.println("this is after....");
  24. }
  25. @Test
  26. public void test1() {
  27. System.out.println("this is test1....");
  28. }
  29. @Test
  30. public void test2() {
  31. System.out.println("this is test2....");
  32. }
  33. }

运行结果:



总结:

@BeforeClass

修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在一份实例,他比较适合加载配置文件(针对所有测试,只执行一次 )

@AfterClass

所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次 )

@Before和@After 会在每个测试方法前后各执行一次

@Test:测试方法,在这里可以测试期望异常和超时时间

@Ignore:忽略的测试方法  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多