javascript
单元测试@Test+@RunWith(SpringRunner.class)
什么是單元測(cè)試?
我們剛開始接觸編程過程中使用最多的測(cè)試就是使用main方法,但是main方法測(cè)試每次測(cè)試都需要全部執(zhí)行完,效率比較慢,如何測(cè)試一部分代碼呢?那么就可以使用單元測(cè)試@Test來測(cè)試你需要驗(yàn)證的代碼是否有bug問題(其實(shí)debug也可以)。
其實(shí)單元測(cè)試指程序員對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證,就是幫我們迅速找出軟件中存在bug的一種方式而已(目前應(yīng)用最廣泛的版本是JUnit4)。
測(cè)試分類
按是否查看代碼可以將測(cè)試分為黑盒測(cè)試,白盒測(cè)試,灰盒測(cè)試
黑盒測(cè)試
舉例解釋,一個(gè)電風(fēng)扇你只需要測(cè)試按下開關(guān),他能不能扇風(fēng)(能不能實(shí)現(xiàn)這個(gè)功能),不需要知道他的底層實(shí)現(xiàn)原理。即為功能測(cè)試,關(guān)注被測(cè)軟件的功能實(shí)現(xiàn);
白盒測(cè)試
舉例解釋,一個(gè)電風(fēng)扇你需要知道他是如何通過線路電路實(shí)現(xiàn)按下開關(guān)去控制電扇的開關(guān)和調(diào)檔。
主要檢查軟件內(nèi)部邏輯結(jié)構(gòu)、程序設(shè)計(jì)等是否符合規(guī)定;
灰盒測(cè)試
舉例解釋,就是你理解那么一些電路和一些實(shí)現(xiàn)原理又不是很清楚,也知道如何使用,處于有一種佛系狀態(tài)(知道又不完全知道的狀態(tài))。介于黑盒和白盒之間的一種測(cè)試,既關(guān)注功能也關(guān)注內(nèi)部邏輯的實(shí)現(xiàn),但并沒有白盒測(cè)試那么細(xì)致。需要灰盒測(cè)試的目的是因?yàn)榘缀袦y(cè)試效率較低;
如何導(dǎo)入JUnit4
?
代碼測(cè)試:
import org.junit.After; import org.junit.Before; import org.junit.Test;/*** junit測(cè)試* @author Mixi*/ public class JunitTest {// 單元測(cè)試@Testpublic void test1() {System.out.println("test1");}@Testpublic void test2() {System.out.println("test2");}// 只要有@After,在所有測(cè)試方法(方法上有@Test的方法)執(zhí)行之后,每一次測(cè)試都會(huì)執(zhí)行一次(After方法)@Afterpublic void test4() {System.out.println("After");}// 只要有@Before,在所有測(cè)試方法(方法上有@Test的方法)執(zhí)行之前,每一次測(cè)試都會(huì)執(zhí)行一次(Before方法)@Beforepublic void test3() {System.out.println("Before");} }輸出結(jié)果
總結(jié):
@Test就是一個(gè)工具而已。程序員對(duì)軟件中最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證,就是幫我們迅速找出軟件中存在bug的一種方式而已。
第二種單元測(cè)試方式
/*** 開啟單元測(cè)試*/ @RunWith(SpringRunner.class) // SearchStarter指的是當(dāng)前服務(wù)的啟動(dòng)類名稱 @SpringBootTest(classes = SearchStarter.class) public class Course2ESTest {/*** 用來創(chuàng)建索引庫(kù)* 創(chuàng)建映射* */@Autowiredprivate ElasticsearchRestTemplate elasticsearchRestTemplate;/*** 用來將傳遞的信息存儲(chǔ)到索引庫(kù)中* */@Autowiredprivate CourseESRepository courseESRepository;/*** 測(cè)試創(chuàng)建索引庫(kù)和創(chuàng)建映射*/@Testpublic void testCreate() {// 創(chuàng)建索引庫(kù) 參數(shù)為文檔對(duì)象的類型 里面包含了保存到索引庫(kù)的字段elasticsearchRestTemplate.createIndex(Course2ESDoc.class);elasticsearchRestTemplate.putMapping(Course2ESDoc.class);}@Testpublic void testCRUD(){ // courseESRepository.save(new Course2ESDoc(1l,"測(cè)試",new BigDecimal(100),"用來測(cè)試的"));/* Optional<Course2ESDoc> byId = courseESRepository.findById(1l);Course2ESDoc course2ESDoc = byId.get();System.out.println(course2ESDoc);*/ // courseESRepository.deleteById(1l);courseESRepository.findAll();}}總結(jié)
以上是生活随笔為你收集整理的单元测试@Test+@RunWith(SpringRunner.class)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见搜索算法(二):二分查找
- 下一篇: springboot自定义启动图标