SpringBoot 集成JUnit


 

項目太大,不好直接測整個項目,一般都是切割成多個單元,單獨測試,即單元測試。

直接在原項目上測試,會把項目改得亂七八糟的,一般是單獨寫測試代碼。

 

進行單元測試,這就需要集成JUnit。

 

 


 

 

(1)在pom.xml中添加JUnit的依賴

        <!--JUnit的起步依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <!--指定作用域為test,此依賴只在test時起作用-->
            <scope>test</scope>
        </dependency>

使用骨架、Spring Initializr創建項目時,往往自動導入了Junit的依賴,看一下pom.xml中有沒有,沒有就導入。

注意要設置<scope>為test。

 

 


 

 

(2)在src/test/java中寫單元測試

src/main/用來寫項目,java放.java文件,resources放資源文件(根目錄下放application.yml,static下放靜態資源,templates下放模板引擎)。

src/test/用來寫項目測試,java放單元測試,resources放資源文件。

 

把src/main/resources中的內容拷到src/test/resources,沒有resources文件的就自己新建。

 

單元測試的類名一般是在原類名后加Test。

比如我要寫com.chy.mapper.UserMapper的單元測試,在src/test/java下新建com.chy.mapper.UserMapperTest,包名保持一致,類名加Test。

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)  //引導類的class對象
public class UserMapperTest {
    @Autowired //自動注入要測試的類
    private UserMapper userMapper;

    @Test public void queryUserByIdTest(){
        //測試該類中的方法
        User user=userMapper.queryUserById(1);
        System.out.println(user);
    }

}

把要測試的類寫成成員變量,使用@Autowired注入。

 

要測該類中的哪個方法,就寫一個對應的方法來測試,在方法上標注@Test。

方法名一般是原方法名+Test。如果只測試一個方法,常把方法名直接寫成test。

 

點左邊的三角進行測試。

 

 


 

 

有些方法需要注入一些值,把要注入的值寫成成員變量,對象用@Autowired注入,基本類型用@Value直接注入值。

 

如果需要在測試方法執行前后做一些處理:

    @Before
    public void before(){

    }

    @Test
    public void test(){
       
    }

    @After public void after(){

    }

這個測試類中的所有測試方法都會執行前處理、后處理。

 

 


 

 

一般要保留測試代碼,比如要測試queryUserById()、updateUserById(),是寫對應的2個測試方法,不是先寫queryUserById()來測試,測完就在這個方法的基礎上改改,改成其他方法的測試,不是這樣的。

同理,測試類都是在對應位置寫、單獨寫,包也要保留,這些測試合起來就是整個項目的測試。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM