国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[初學(xué)Spring Boot](2):單元測試報(bào)錯(cuò):org.junit.runners.model.InvalidTestClassError:Invalid test class

這篇具有很好參考價(jià)值的文章主要介紹了[初學(xué)Spring Boot](2):單元測試報(bào)錯(cuò):org.junit.runners.model.InvalidTestClassError:Invalid test class。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

?本來:

是建項(xiàng)目時(shí)自動(dòng)生成的測試類,結(jié)果還是報(bào)錯(cuò)了。大無語事件。

就是IDEA自建測試時(shí)導(dǎo)錯(cuò)包了。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

?注釋掉的時(shí)原來自導(dǎo)的,換成短的就好了。

經(jīng)查證,長的是升級版,junit5,spring boot版本在2.2之后,方法不要public修飾;

短的,是舊版,junit4,spring boot版本在2.2之前,方法要用public修飾。

追問:

話是這么說,我的Spring Boot版本是2.7.4,Idea沒有自建錯(cuò)啊,可為什么還是報(bào)錯(cuò)哦?

經(jīng)測試,junit5是用不起來啊,用4是沒問題的,用5又報(bào)空指針錯(cuò)誤。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

OK

行,行了下,可能是代碼中junit4的部分代碼沒有改干凈。果然,@Before注解是屬于4的。搜一下5的,@BeforeAll,改好之后,import一下該有的包,自動(dòng)完成。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

?按住Ctrl鍵,鼠標(biāo)放上面,ok,全部是junit5了。

再試

OK,又報(bào)錯(cuò)了。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

讀了一下錯(cuò)誤原因,行嘞,把測試類加上這個(gè)注解吧。至于為什么,馬上下班過國慶了,這里不延伸了。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

該import的包,Idea會幫你自動(dòng)導(dǎo)入。

OKOK

再試一次,成功!

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

okok

你注意到,上面我說,junit5測試方法無需public,我上面是有的。于是,我搞個(gè)混合測試

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

好了,其實(shí),和public沒有關(guān)系的。加不加無所謂了。

但是,junit4必須是public修飾,而且是void且無參。感興趣看源碼吧。這里不在展開。后續(xù)有機(jī)會一起看嘍。

這樣看,junit5是升級了哈,不用拘泥修飾符了。?

總結(jié)

原來啊,是我用junit5的架子填了junit4的代碼啊。(junit5是Idea自動(dòng)建的,因?yàn)槲矣昧薙pring Boot2.7.4版本)。

貼一下完整源碼吧

方便像我一樣的新手菜鳥學(xué)習(xí)使用。

首先是文件目錄結(jié)構(gòu),請用Idea新建項(xiàng)目

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

我的jdk1.8.0.33,對應(yīng)Java8,next選Java8

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

命名什么的,自己決定。?如圖,com.wfy下,右鍵,new-package,新建了controller包,下新建class類,命名隨意。又在test目錄下,新建類了。注:test包系統(tǒng)自建。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

?ok了,開始填代碼:

//MyController
package com.wfy.test

import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequesMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
public class MyController{
    @requestMapping("/MyLove")//瀏覽網(wǎng)址:localhost:8723/MyLove
    public String get(){
        return "Ky";
    }
}
//HelloController
package com.wfy.controller;

import org.springframework.web.bind.annotion.RequestMapping;
import org.springframework.web.bind.annotion.RestController;

@RestController
public class HelloController{
    @RequestMapping("/hello")//詳情可看看我的《初學(xué)Spring Boot》(一)
    public String index(){
        return "Hello,World!";
    }
}
//TestApplicationTest
//此測試就是測試TestApplication類的。注意命名的技巧
package com.wfy.test;

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.extension.Extendwith;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import static org.hamcrest.Mathchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import ststic org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@SpirngBootTest
@ExtendWith(SpringExtension.class)
@AutoConfigureMockMvc
@TestInstance(TestInstance.Lifecycle.Per_CLASS)
class TestApplicationTests{
    private MockMvc mvc;
    //private MockMvc mvc1;

    @BeforeAll
    void setUp() throws Exception{
        mvc=MockMvcBuilders.standaloneSetup(new MyController()).build();
        //mvc1=MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }
    @Test
    void contextLoads() throws Exception{     
         mvc.perform(MockMvcRequestBuilders.get("/MyLove")
        .Accept(MediaType.APPLICATION_JSON))
        .andExpect(status().isOk())
        .andExpect(content().string(equalTo("Ky")));
         //mvc1.perform(MockMvcRequestBuilders.get("/hello")
       // .Accept(MediaType.APPLICATION_JSON))
        //.andExpect(status().isOk())
        //.andExpect(content().string(equalTo("Hello World!")));
        System.out.println("Yes!Got it!");
    }
}

這里,我本來只寫了一個(gè)/MyLove的測試。其實(shí),還有一個(gè)/hello的。按照這個(gè)樣子加一個(gè),結(jié)果報(bào)錯(cuò)了

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

?org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

?這意思是斷言錯(cuò)誤。細(xì)心的朋友,可能會發(fā)現(xiàn),mvc1賦值時(shí),沒有修改為我另一個(gè)HelloController,所以實(shí)例化錯(cuò)誤了。

org.junit.runners.model.invalidtestclasserror,junit,單元測試,spring boot

修改一下,搞定,收工!?

先過國慶了,剩下的事,以后再說!文章來源地址http://www.zghlxwxcb.cn/news/detail-725256.html

Over!再聊!

到了這里,關(guān)于[初學(xué)Spring Boot](2):單元測試報(bào)錯(cuò):org.junit.runners.model.InvalidTestClassError:Invalid test class的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot與微服務(wù)測試:JUnit和Mockito的單元和集成測試實(shí)踐

    Spring Boot與微服務(wù)測試:JUnit和Mockito的單元和集成測試實(shí)踐

    微服務(wù)架構(gòu)的流行使得測試變得更為重要。在Spring Boot應(yīng)用中,使用JUnit和Mockito進(jìn)行單元和集成測試是一種常見的實(shí)踐。本文將深入探討如何利用這兩個(gè)測試框架,確保Spring Boot微服務(wù)的可靠性和穩(wěn)定性。 單元測試 1.1 JUnit簡介 JUnit是Java中最為流行的單元測試框架之一,它提供

    2024年02月21日
    瀏覽(102)
  • spring boot 單元測試JUnit5使用Mockito模擬Mock數(shù)據(jù)調(diào)用

    spring boot 單元測試JUnit5使用Mockito模擬Mock數(shù)據(jù)調(diào)用 好大一批新用法,大家靜下心來好好看看吧 1. spring boot 使用 Mockito.when().thenReturn()模擬返回值 Mockito 是一種 Java mock 框架,他主要就是用來做 mock 測試的,他可以模擬任何 Spring 管理的 bean、模擬方法的返回值、模擬拋出異?!?/p>

    2024年02月15日
    瀏覽(31)
  • spring boot 單元測試JUnit5使用斷言Assertions和假定Assumptions、嵌套、參數(shù)測試

    spring boot 單元測試JUnit5使用斷言Assertions和假定Assumptions、嵌套、參數(shù)測試 本文基于spirng boot 2.7.11, 大家注意自己的版本 Spring Boot 2.2.0 版本開始引入 JUnit 5 作為單元測試默認(rèn)庫 SpringBoot 2.4 以上版本移除了默認(rèn)對 Vintage 的依賴 源碼地址:https://gitcode.net/qq_39339588/springboot.git 1.

    2024年02月11日
    瀏覽(55)
  • Junit單元測試 org.junit.jupiter.api.extension.ParameterResolutionException異常處理

    Junit單元測試 org.junit.jupiter.api.extension.ParameterResolutionException異常處理

    想根據(jù)Id查詢信息,在Junit單元測中報(bào)錯(cuò) @Test 單元測試方法中不允許添加參數(shù) 將 (Integer id) 刪除即可,但這樣必須手動(dòng)添加調(diào)用方法中的id,并且只能測試查詢單條數(shù)據(jù),比如我要查詢id=1的數(shù)據(jù),就只能手動(dòng)在括號里添加1 如果我要查詢多條數(shù)據(jù),自定義參數(shù)的話,可以使用參

    2023年04月22日
    瀏覽(25)
  • spring boot 單元測試JUnit5使用MockMvc調(diào)用get請求,post請求,設(shè)置head請求頭,解析返回值json和字符串

    spring boot 單元測試JUnit5使用MockMvc調(diào)用get/post接口 源碼地址:https://gitcode.net/qq_39339588/springboot.git 1. 先準(zhǔn)備一份controller,一會兒供測試調(diào)用 2. MockMvc測試調(diào)用get請求接口 兩個(gè)注解說明 @SpringBootTest // 加測試類上,標(biāo)明是測試的類 @AutoConfigureMockMvc // 支持對MockMvc對象的注入和配置,

    2024年02月14日
    瀏覽(24)
  • 單元測試已從編譯中排除類org.junit.platform.commons.PreconditionViolationException

    單元測試已從編譯中排除類org.junit.platform.commons.PreconditionViolationException

    報(bào)錯(cuò)如下:org.junit.platform.commons.PreconditionViolationException: Could not load class with name:xx 原因: 如圖: 這是由于換jar包導(dǎo)致一些類不可用,又不想刪除類,所以當(dāng)時(shí)排除了部分類 解決: 打開設(shè)置: 找到編譯器下的排除,減掉對應(yīng)的類即可: 不要忘記點(diǎn) 確定 或 應(yīng)用 觀察到類左上

    2024年02月11日
    瀏覽(23)
  • spring 單元測試 Junit

    我是南城余!阿里云開發(fā)者平臺專家博士證書獲得者! 歡迎關(guān)注我的博客!一同成長! 一名從事運(yùn)維開發(fā)的worker,記錄分享學(xué)習(xí)。 專注于AI,運(yùn)維開發(fā),windows Linux 系統(tǒng)領(lǐng)域的分享! 本章節(jié)對應(yīng)知識庫 https://www.yuque.com/nanchengcyu/java 本內(nèi)容來自尚硅谷課程,此處在知識庫做了

    2024年02月04日
    瀏覽(33)
  • Spring整合Junit單元測試

    Spring整合Junit單元測試

    在測試類中,每個(gè)測試方法都有以下兩行代碼: 這兩行代碼的作用是獲取容器,如果不寫的話,直接會提示空指針異常。所以又不能輕易刪掉。 讓SpringJunit負(fù)責(zé)創(chuàng)建Spring容器,但是需要將配置文件的名稱告訴它 將需要進(jìn)行測試Bean直接在測試類中進(jìn)行注入 ①導(dǎo)入spring集成Ju

    2024年02月12日
    瀏覽(20)
  • Spring整合JUnit實(shí)現(xiàn)單元測試

    在軟件開發(fā)過程中,單元測試是保證代碼質(zhì)量和穩(wěn)定性的重要手段。JUnit是一個(gè)流行的Java單元測試框架,而Spring是一個(gè)廣泛應(yīng)用于Java企業(yè)級開發(fā)的框架。本文將介紹如何使用Spring整合JUnit實(shí)現(xiàn)單元測試,以及如何使用Mockito模擬依賴對象和使用Spring TestContext框架進(jìn)行集成測試。

    2024年02月14日
    瀏覽(23)
  • redis jedis 單元測試 報(bào)錯(cuò)集錦 匯總 junit

    在單元測試時(shí),使用jedis通常遇到如下報(bào)錯(cuò): 實(shí)例化報(bào)錯(cuò)-連接報(bào)錯(cuò)-權(quán)限報(bào)錯(cuò)。此報(bào)錯(cuò)是有順序的:例如,若連接報(bào)錯(cuò),說明實(shí)例化完成,即配置文件配對了。若權(quán)限報(bào)錯(cuò),說明連接通了,但密碼錯(cuò)誤。若實(shí)例化就報(bào)錯(cuò),說明配置文件配錯(cuò)了,沒法啟動(dòng)redis客戶端,更別說去連

    2024年02月11日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包