1. 程式人生 > >關於junit單元測試中的注入錯誤

關於junit單元測試中的注入錯誤

之前寫的一個專案,在做單元測試的時候,用了service來儲存資料,然後就發現了一個錯誤:spring的注入錯誤,我在service類上加了component並且在spring的component-scan也配置了相應的路徑,要注入的東西也都加了@Resource,在測試類裡面也對service進行了注入,但是就是注入不進來,但是利用AnnotationConfiguration裡的sessionFactory卻又可以儲存,這時我發現:junit所測試的函式僅僅侷限於本身,所以spring不會幫你把service注入進來。

心得:利用junit做單元測試時,用AnnotationConfiguration裡的sessionFatory測試或者從ApplicationContext裡獲取bean進行測試都可以,另外一種麻煩的方法就是在另一個類裡面呼叫要測試的函式,spring也會幫你注入。

方法:

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); 
		IUserService us = (IUserService) ctx.getBean("userService"); 
		User u = new User();
		u.setName("Jack");
		us.saveUser(u);
或者:
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
		Session s = sessionFactory.getCurrentSession();
		s.beginTransaction();
		User u = new User();
		u.setName("B");
		u.setAge(20);
		s.save(u);
		s.getTransaction().commit();



相關推薦

關於junit單元測試注入錯誤

之前寫的一個專案,在做單元測試的時候,用了service來儲存資料,然後就發現了一個錯誤:spring的注入錯誤,我在service類上加了component並且在spring的component-scan也配置了相應的路徑,要注入的東西也都加了@Resource,在測試

SSM專案 單元測試 注入bean 空指標異常

java.lang.NullPointerException at com.cumt.service.ShopCategoryServiceTest.testGetShopCategoryList(ShopCategoryServiceTest.java:22) at sun.reflect.NativeMe

JUnit單元測試獲取bean

一、使用註解@Autowired注入bean package test; import java.util.List; import org.junit.Test; import org.juni

JUnit單元測試的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小結

編寫JUnit單元測試的時候,會用到setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()這四個方法,例如用eclipse新建一個junit test case的時候,就會有如下圖1的視窗讓你去選擇使用哪些方

【解決】Junit單元測試出現的報錯

at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.de

Junit 單元測試在 intelliJ IDEA 的安裝

repo setting 進入 安裝 junit sta rain pos 每次 1.為什麽使用Junit我們都知道,main 方法是一個程序的入口,通常來說,沒有main方法,程序就無法運行。我們經常會寫一些class文件(如下圖所示),他們並沒有自己的main方法。那麽

使用Junit單元測試及操作MySQL數據庫時出現錯誤及解決方法

靜態 方法 簡單 註解 info 正常 mage 返回 基本上 在一次看Mybatis視頻學習過程中,教學視頻中用到了Junit單元測試,因為剛開始學習,會出現許多錯誤,每次出現錯誤都會上網搜索,但是發現基本上錯誤都是這麽幾種: 1、沒有@Test註解 2、測試方法用s

Junit單元測試+aop+spring+執行緒池,在進行Junit測試時切面執行緒池內呼叫的方法不執行

一、問題背景: 寫了一個切面,指向某service包下的所有類及方法,當該service包下方法被呼叫時切面執行,切面中用了執行緒池ExecutorService pool = Executors.newFixedThreadPool(5);執行緒池內呼叫了dao層的方法。 二、問題描述:單

使用WebSocket導致jUnit單元測試報No suitable default RequestUpgradeStrategy found錯誤的解決方法 小記

廢話不多說直接貼圖 我們只需要在依賴中新增 <dependency> <groupId>org.apache.tomcat.embed</groupId> &

spring Junit單元測試 bean 無法注入的問題

本人菜鳥在學習ssh 過程 ,遇見問題 向各位大佬請教。進行單元測試 爆出下面提示: 貼出下面配置資訊: applicationContext.xml 實現service 介面類 實現dao介面類 單元測試 進過本菜鳥的各種錯嘗試,上面的配置檔案內容沒有錯誤,只是整合框架的過

Spring mvc 之Junit 單元測試 Controller方法

               Springmvc 之Junit 單元測試 1.   首先引入測試的jar包。 1.1因為我用的ide是eclipse,現只介紹eclipse中junit的使用。首先引用eclipse中自帶的junit, 方法: 右鍵專案—>proper

Myeclipse進行JUnit單元測試

最近學習了在myeclipse中進行單元測試,寫點東西總結總結。 JUnit單元測試: 測試物件為一個類中的方法。 juint不是javase中的部分,所以必須匯入jar包,但是myeclips

springbootjunit單元測試

前言 Junit是一個Java語言的單元測試框架,被開發者用於實施對應用程式的單元測試,加快程式編制速度,同時提高編碼的質量。是一個在發展,現在已經到junit5,在javaEE開發中與很多框架相整合,使得開發者很方便。  Junit常用註解: @Before:初始化

junit單元測試時spring的@Autowired注入為空

在測試類上新增以下注釋,測試時自動建立Spring的應用上下文: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:beans.xml" })或者@

junit單元測試時通過spring注入的類為空怎麼處理

 加入@runwith及@contextConfiguration  以便在測試開始的時候自動建立Spring的應用上下文 @ContextConfiguration(classes=CDPlayerConfig.class)  publicclass CDPlayer

進行junit單元測試時,報找不到方法錯誤

控制檯列印的錯誤: Caused by: java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotatedElementUtils.findAllMergedAnnotations(Ljav

突然發現junit單元測試報錯竟然與類的有參構造有關

java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test1], {ExactMatcher:fDisplayName=test1(com.test.User)], {LeadingIdentifierMatche

【Android進階】Junit單元測試環境搭建以及簡單有用

rar theme 選擇 http 技術分享 才幹 ack package family 單元測試的目的 首先。Junit單元測試要實現的功能,就是用來測試寫好的方法是否可以正確的運行,一般多用於對業務方法的測試。 單元測試的環境配置 1.在Andro

Java Junit單元測試步驟總結

logs 其他 同時 new 技術 src eclipse test 分享 哎呀,莫名其妙已經半夜12點了。總結的如有錯誤的地方歡迎指正,我的這個方法沒有引入jar,網上有其他引入jar包的方法,不是很懂,也沒有太怎麽看。 關鍵的一些基本規則: 下面我們來看Eclipse

備忘:Junit單元測試

環境 包名 args 方法 成功 junit單元測試 備忘 [] 命名 junit 目前測試都是在main方法中調用目前的結果都需要人工對比是否是想要的 1.使用Junit測試方法,綠色條條代表方法測試成功,沒有bug,如果是紅色條條代表有異常,測試不通過2.點擊方法名、類