頭歌實踐教學平臺:Junit實訓入門篇


第2關:Junit注解
任務描述

給出一個帶有注解的Junit代碼及其代碼打印輸出,要求學員修改注解位置,讓輸出結果變為逆序。

相關知識
Junit注解

Java注解((Annotation)的使用方法是"@ + 注解名" 。借助注解,我們可以在編程中通過簡單的注解來實現一些功能。在junit中常用的注解有 @Test、@Ignore、@BeforeClass、@AfterClass、@Before、@After 下表列出了這些注釋的概括:

具體解釋如下:

1、@Test,表明此方法為測試方法。

2、@Before,用此注解修飾的方法在每個test方法運行前執行

3、@BeforeClass,用此注解修飾的方法將在所有方法運行前被執行,是一個static方法,只執行一次。

4、@After,用此注解修飾的方法在每個test方法運行后執行

5、@AfterClass,用此注解修飾的方法將在所有方法運行后被執行,也是一個static方法,只執行一次。

6、@Ignore,用此注解修飾的方法會被Junit忽略。

代碼示例

這里新建一個JunitAnnotation.java,把上面所講的注解全部加到某個測試函數之前,這些注解的作用一目了然:

 
  1. package com.trustie.junittest;
  2. import static org.junit.Assert.*;
  3. import java.util.*;
  4. import org.junit.*;
  5. public class AnnotationsTest {
  6. private ArrayList testList;
  7. @BeforeClass
  8. public static void onceExecutedBeforeAll() {
  9. System.out.println("@BeforeClass: onceExecutedBeforeAll");
  10. }
  11. @Before
  12. public void executedBeforeEach() {
  13. testList = new ArrayList();
  14. System.out.println("@Before: executedBeforeEach");
  15. }
  16. @AfterClass
  17. public static void onceExecutedAfterAll() {
  18. System.out.println("@AfterClass: onceExecutedAfterAll");
  19. }
  20. @After
  21. public void executedAfterEach() {
  22. testList.clear();
  23. System.out.println("@After: executedAfterEach");
  24. }
  25. @Test
  26. public void EmptyCollection() {
  27. assertTrue(testList.isEmpty());
  28. System.out.println("@Test: EmptyArrayList");
  29. }
  30. @Test
  31. public void OneItemCollection() {
  32. testList.add("oneItem");
  33. assertEquals(1, testList.size());
  34. System.out.println("@Test: OneItemArrayList");
  35. }
  36. @Ignore
  37. public void executionIgnored() {
  38. System.out.println("@Ignore: This execution is ignored");
  39. }
  40. }

如果我們運行上面的測試,控制臺輸出將是下面:

 
  1. @BeforeClass: onceExecutedBeforeAll
  2. @Before: executedBeforeEach
  3. @Test: EmptyArrayList
  4. @After: executedAfterEach
  5. @Before: executedBeforeEach
  6. @Test: OneItemArrayList
  7. @After: executedAfterEach
  8. @AfterClass: onceExecutedAfterAll
編程要求

本關的編程任務是在JunitAnnotation.java中修改測試函數對應的注解,使得原代碼輸出結果變為逆序。

本關涉及的代碼文件JunitAnnotation.java的代碼如下:

 
  1. package step2;
  2. import org.junit.After;
  3. import org.junit.AfterClass;
  4. import org.junit.Before;
  5. import org.junit.BeforeClass;
  6. import org.junit.Ignore;
  7. import org.junit.Test;
  8. public class JunitAnnotation {
  9. /*
  10. *以下Junit測試程序的輸出結果為:
  11. *in before class
  12. *in before
  13. *in test
  14. *in after
  15. *in after class
  16. *請修改下面Begin/End內各個測試函數的注解,使輸出結果逆序
  17. */
  18. /***********************Begin**************************/
  19. //execute before class
  20. @BeforeClass
  21. public static void beforeClass() {
  22. System.out.println("in before class");
  23. }
  24. //execute after class
  25. @AfterClass
  26. public static void afterClass() {
  27. System.out.println("in after class");
  28. }
  29. //execute before test
  30. @Before
  31. public void before() {
  32. System.out.println("in before");
  33. }
  34. //execute after test
  35. @After
  36. public void after() {
  37. System.out.println("in after");
  38. }
  39. //test case
  40. @Test
  41. public void test() {
  42. System.out.println("in test");
  43. }
  44. /************************End***************************/
  45. }
評測說明

本關卡的測試文件是TestRunner.java,該文件進行了函數封裝且學員不可見,用于驗證學員的Junit測試代碼是否正確。

具體測試過程如下:

1.平臺自動編譯生成TestRunner.exe; 2.平臺運行TestRunner.exe; 3.獲取TestRunner.exe輸出,并將其輸出與預期輸出對比:如果一致則測試通過,否則測試失敗。

預期輸入: 預期輸出:

 
  1. in after class
  2. in after
  3. in test
  4. in before
  5. in before class
  6. true

友情提示

1.請不要直接println最終輸出,否則平臺發現此類情況后,將一律扣掉本關經驗值,并且追加處罰措施。

2.學員答題時請盡量手敲代碼,請勿從實訓講解代碼片段中復制代碼段粘貼到答題區域作答,復制的內容會保留一些格式和字符,導致編譯失敗。

開始你的任務吧,祝你成功!

代碼如下

package step2;import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;public class JunitAnnotation {/**以下Junit測試程序的輸出結果為:*in before class*in before*in test*in after*in after class*請修改下面Begin/End內各個測試函數的注解,使輸出結果逆序*//***********************Begin**************************/@BeforeClasspublic static void afterClass() {System.out.println("in after class");}@Beforepublic void  after() {System.out.println("in after");}@Afterpublic void before() {System.out.println("in before");}@AfterClasspublic static void beforeClass() {System.out.println("in before class");}@Testpublic void test() {System.out.println("in test");}/************************End***************************/
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14119.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14119.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14119.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python數據處理與分析入門-Pandas數據可視化例子

相關內容 Matplotlib可視化練習 Pandas 數據可視化總結 柱狀圖 reviews[points].value_counts().sort_index().plot.bar()散點圖 reviews[reviews[price] < 100].sample(100).plot.scatter(xprice, ypoints)蜂窩圖 reviews[reviews[price] < 100].plot.hexbin(xprice…

Helm安裝kafka3.7.0無持久化(KRaft 模式集群)

文章目錄 2.1 Chart包方式安裝kafka集群 5.開始安裝2.2 命令行方式安裝kafka集群 搭建 Kafka-UI三、kafka集群測試3.1 方式一3.2 方式二 四、kafka集群擴容4.1 方式一4.2 方式二 五、kafka集群刪除 參考文檔 [Helm實踐---安裝kafka集群 - 知乎 (zhihu.com)](https://zhuanlan.…

virtualbox共享文件夾沒有訪問權限

設置好共享文件夾之后&#xff0c;進入虛擬機&#xff0c;共享文件夾的地址是/media/sf_shared。 想要使用cd命令進入該文件夾時&#xff0c;你可能會發現此文件夾無法訪問&#xff0c;系統提示的原因是權限不足。 在虛擬機下查看共享文件夾的屬性&#xff0c;發現該目錄的所…

Nginx - 健康檢查終極指南:探索Upstream Check模塊

文章目錄 概述upstream_check_module模塊安裝和配置指南模塊安裝步驟基本配置示例詳細配置說明檢查類型和參數常見問題及解決方案 SSL檢查和DNS解析功能SSL檢查配置示例和說明配置示例 DNS解析配置示例和說明配置示例 結合實際應用場景的高級配置示例綜合SSL檢查與DNS解析 總結…

Doris【部署 03】Linux環境Doris數據庫部署異常問題收集解決(不斷更新)

Linux環境Doris數據庫部署異常問題 1.FE1.1 Unknown system variable character_set_database1.2 notify new FE type transfer: UNKNOWN1.3 mysql_load_server_secure_path1.4 Only unique table could be updated1.5 too many filtered rows 2.BE2.1 Have not get FE Master …

python:大文件分批/塊導入數據庫方式記錄

一、問題背景 對于數據文件比較大的數據&#xff0c;一次性串聯sql進行入庫&#xff0c;往往會受到數據庫本身對sql長度的限制&#xff0c;從而需要分塊或者分批次&#xff0c;將大數據文件一點一點的進行入庫。特針對這種入庫方式&#xff0c;進行一個簡單記錄&#xff0c;各…

spring的控制反轉(IoC)容器作用是什么?

控制反轉&#xff08;Inversion of Control&#xff0c;IoC&#xff09;容器是一種強大的設計模式&#xff0c;在現代軟件開發&#xff0c;特別是在使用Spring框架等企業級Java應用中至關重要。IoC容器主要作用是管理應用程序中對象的生命周期和依賴關系。我會逐步解釋它的作用…

YOLOv8改進 | 主干網絡 | 增加網絡結構增強小目標檢測能力【獨家創新——附結構圖】

??????本專欄所有程序均經過測試,可成功執行?????? 在目標檢測領域內,盡管YOLO系列的算法傲視群雄,但在某些方面仍然存在改進的空間。在YOLOv8提取特征的時候,由于卷積的緣故,會導致很多信息的丟失。對于小目標來說更是如此,這樣將大幅度降低小目標的檢測能…

pinpoint服務監控

Pinpoint是一個開源的APM&#xff08;應用性能管理&#xff09;系統&#xff0c;主要用于監控和管理Java應用程序的性能。它提供了實時的性能指標、分布式追蹤和診斷等功能&#xff0c;幫助開發和運維快速定位和解決應用程序中的性能問題。 pinpoint其他部分不變&#xff0c;H…

正確可用--Notepad++批量轉換文件編碼為UTF8

參考了:Notepad批量轉換文件編碼為UTF8_怎么批量把ansi轉成utf8-CSDN博客??????https://blog.csdn.net/wangmy1988/article/details/118698647我參考了它的教程,但是py腳本寫的不對. 只能改一個.不能實現批量更改. 他的操作步驟沒問題,就是把腳本代碼換成我這個. #-*-…

graspnet+Astra2相機實現部署

graspnetAstra2相機實現部署 &#x1f680; 環境配置 &#x1f680; ubuntu 20.04Astra2相機cuda 11.0.1cudnn v8.9.7python 3.8.19pytorch 1.7.0numpy 1.23.5 1. graspnet的復現 具體的復現流程可以參考這篇文章&#xff1a;Ubuntu20.04下GraspNet復現流程 這里就不再詳細…

數據庫系統概論(第5版)復習筆記

筆記的Github倉庫地址 &#x1f446;這是筆記的gihub倉庫&#xff0c;內容是PDF格式。 因為圖片和代碼塊太多&#xff0c;放到CSDN太麻煩了&#xff08;比較懶&#x1f923;&#xff09; 如果感覺對各位有幫助的話歡迎點一個?\^o^/

41-4 DDOS攻擊防護實戰

一、UDP FLOOD攻擊 # hping3 -q -n -a <攻擊IP> -S -s <源端口> --keep -p <目的端口> --flood <被攻擊IP> hping3 --udp -s 6666 -p 53 -a 192.168.1.6 --flood 192.168.1.13 這個命令是使用hping3工具進行UDP Flood攻擊的命令。下面是各個選項的作…

three.js能實現啥效果?看過來,這里都是它的菜(06)

這是第五期了&#xff0c;本期繼續分享three.js可以實現的3D動畫案例&#xff0c;有老鐵反饋再發案例的時候&#xff0c;是否可以順道分享一下three.js的知識點&#xff0c;好吧&#xff0c;安排。 材質動畫 材質動畫可以實現各種復雜的視覺效果&#xff0c;包括但不限于以下…

【css】引入背景圖時候,路徑寫入@會報錯

看報錯信息 我的寫法 解決辦法 在前面加個~

js解決數字小數計算出現的精度丟失問題(2024-05-24)

精度丟失的原因 js小數進行數值運算時出現精度丟失問題 JavaScript 的number類型在進行運算時都先將十進制轉二進制&#xff0c;此時&#xff0c;小數點后面的數字轉二進制時會出現無限循環的問題。 為了避免這一個情況&#xff0c;要舍0進1&#xff0c;此時就會導致精度丟失…

企業寬帶跑pcdn會被查嗎?

企業寬帶使用PCDN技術&#xff0c;本身并不違反相關規定&#xff0c;因此一般不會被查。PCDN是一種內容分發網絡技術&#xff0c;通過將內容緩存在離用戶更近的服務器上&#xff0c;減少數據傳輸的延遲&#xff0c;提高訪問速度。這種技術可以提高網頁加載速度和視頻播放流暢度…

Excel未響應時強關后,Excel插件消失

目錄 我們分析一下插件消失的原因&#xff1a; 針對上面表現出來的2個問題&#xff0c;進行針對性的解決 &#xff1a; 1、不被關進去&#xff0c;是不是就沒有后續的一系列的問題了&#xff0c;各自安好 2、保留住自動加載的行為 PS&#xff1a;配置受信任的位置注冊列表…

2024電工杯B題保姆級分析完整思路+代碼+數據教學

2024電工杯B題保姆級分析完整思路代碼數據教學 B題題目&#xff1a;大學生平衡膳食食譜的優化設計及評價 接下來我們將按照題目總體分析-背景分析-各小問分析的形式來 總體分析&#xff1a; 題目要求對兩份一日膳食食譜進行營養分析和調整&#xff0c;然后設計優化的平衡膳…

生成模型 | 從 VAE 到 Diffusion Model (上)

文章目錄 一&#xff0c;GAN(對抗式生成網絡&#xff09;二&#xff0c;Auto-Encoder(AE) 和 Denoising Auto-Encoder (DAE)三&#xff0c;VAE四&#xff0c;VQ-VAE (Vector Quantized Variational Autoencoder)VQ-VAE 2小總結&#xff1a; 五&#xff0c;DALL-E &#xff08;O…