當前位置:首頁 » 數據倉庫 » soma如何配置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

soma如何配置

發布時間: 2023-02-26 03:17:38

① 如何用Junit4測試Spring框架下配置的類

如何用Junit4測試Spring框架下配置的類


前幾天,我們在做Junit4的單元測試時,遇到了問題,就是Junit無法獲得spring的配置環境,即Junit無法得到Spring創建的類實例。
在查閱了網上的一些資料和同事的幫助下,成功的解決了此問題。步驟如下:
1 建立一個test的目錄,在此目錄下放置所有的JunitTestCase類和TestCase的配置文件
2 將項目中的Spring配置文件(默認名稱為applicationContext.xml)復制到test目錄下,並重新命名為JunitTestConf.xml。
3 根據Junit測試的需要修改JunitTestConf.xml文件中的內容,如資料庫連接等。
4 新建一個名為SpringConfForTest.java的類,在此類中配置Spring啟動所需的配置文件,並啟動Spring。此類的內容如下:
package test;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.;
import com.soma.global.WebContextHolder;
public class SpringConfForTest {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
//Spring啟動所需要的配置參數文件,其中test/JunitTestConf.xml文件中保存了資料庫連接等參數,可根據具體情況做修改
String[] paths = new String[] {"test/JunitTestConf.xml", "com/soma/conf/applicationContext--hr.xml","com/soma/conf/applicationContext-.xml","com/soma/conf/applicationContext--bug.xml","com/soma/conf/applicationContext--change.xml","com/soma/conf/applicationContext--common.xml","com/soma/conf/applicationContext-service-hr.xml" };
//啟動Spring,得到Spring環境上下文
ApplicationContext ctx = new (paths);
//在此類啟動時,將Spring環境上下文保存到單根類WebContextHolder中,以提供給其它的測試類使用
WebContextHolder.getInstence().setApplicationContext(ctx);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Test
public void test(){
//必須要寫一個test空方法,否則SpringConfForTest類不會啟動
}
}
5 新建TestSuite類,類名為AllTests,類的內容如下所示:
package test;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import test.com.soma.domain.busilogic.hr.HrBusiLogicTest;
import test.com.soma.domain.service.hr.checkOverTimeDateTest;
@RunWith(Suite.class)
@Suite.SuiteClasses({
SpringConfForTest.class,
HrBusiLogicTest.class,
checkOverTimeDateTest.class
})
/**
* 批量執行Junit測試類,把類名寫入到上面的Suite.SuiteClasses({})中,用逗號分隔
*/
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("Test for test");
//$JUnit-BEGIN$
//$JUnit-END$
return suite;
}
}
注意:將SpringConfForTest.class放在第一個執行,以啟動Spring配置環境,把自己的TestCase類放到後面,用逗號分開。在測試時,只要執行這個TestSuite類就可以了。
6 寫自己的TestCase類,以CheckOverTimeDateTest.java為例子,文件內容如下:
public class CheckOverTimeDateTest {
private static HrTbovertimeManager hrTbovertimeManager;
private static ExcuteSqlDAO excuteSqlDAO;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
//從Spring上下文中得到hrTbovertimeManager介面類的實例
hrTbovertimeManager=(HrTbovertimeManager)BeanUtil.getBean("hrTbovertimeManager");
excuteSqlDAO = (ExcuteSqlDAO) BeanUtil.getBean("excuteSqlDAO");
}
@Test
public void testGetProjectList()throws Exception {

List<OvertimeDetailValue> overtimeDetailValueList = new ArrayList<OvertimeDetailValue>();
int index = 9;
for(int i = 1 ;i <= index;i++){
OvertimeDetailValue overtimeDetailValue = new OvertimeDetailValue();
overtimeDetailValue.setOtApplyDate("2009-05-0"+i);
overtimeDetailValueList.add(overtimeDetailValue);
}
String resultStr = hrTbovertimeManager.checkOverTimeDate(overtimeDetailValueList);
assertEquals("false", resultStr);
}
/**
* 導入2009-03月份出勤記錄excel文件,返回null表示導入成功,需要先刪除3月份的數據
*/
@Test
public void testSaveExcelDutyInformation() throws Exception{
// 在導入3月份出勤記錄前先刪除3月份的記錄,執行delete from hr_tbtyinformation;
excuteSqlDAO.excuteSql("delete from hr_tbtyinformation where tydate>='2009-02-26' and tydate<='2009-03-25'");
// System.out.println("----------"+System.getProperty("user.dir")+"/src/test/ty200903.xls");
String fileName = System.getProperty("user.dir")
+ "/src/test/ty200903.xls";
assertNull(hrTbtyInformationManager.saveExcelDutyInformation(fileName));
}
}
說明:BeanUtil.getBean("")相當於WebContextHolder.getInstence().getApplicationContext().getBean(""),只是對此方法做了封裝。
7 在Eclipse中,啟動AllTests,選擇「Run As JunitTest」,即可先啟動Spring環境,再依次運行你自己所寫的JunitTestCase

② vscode 與 webstorm 各自有什麼優缺點

vscode優點:

該編輯器也集成了所有一款現代編輯器所應該具備的特性,包括語法高亮(syntax high lighting),可定製的熱鍵綁定(customizable keyboard bindings),括弧匹配(bracket matching)以及代碼片段收集(snippets)。

Somasegar 也告訴筆者這款編輯器也擁有對 Git 的開箱即用的支持。Microsoft Docs(微軟文檔)提供了相應的學習教程幫助用戶在 Visual Studio Code 中登陸 GitHub。

缺點:要開發大型項目要下很多插件,配置很多,如ESLint配置,prettier配置等等,2021年了,點擊CSS類名跳轉、CSS類名提示仍需要藉助插件,而且vue中無法跳轉class和id。

代碼提示缺失AI,官方的AI插件不是很好用。重構文件名沒有自動更新功能,git相比webstorm真是一言難盡。不過解決沖突很強。

webstorm優點:

如官方描述一樣,功能碾壓所有前端開發工具。向官方反饋問題馬上能得到回應,可以去twitter上看看它的回復。

缺點:正版中文不如VSCode友好,要翻譯就希望認真翻譯,太多機翻的東西了。wsl開發不是很爽(慢)。