次のように今日は、春にダウンを記録小さな解決する問題や見直しが発生し、我々はJunit4のテスト構成に精通して最初にすべきことは次のようになります。
Junit4、で表される@RunWith @ContextConfigurationは、構成ファイルの場所を示す、その@ContextConfiguration値なし場合、デフォルトは、カレントディレクトリ内の同じレベルで現在のテストからクラス名とテストクラスを見つけることであろう-context .xml設定ファイル。以下のような:App.classためのテストクラス名に示したように、それは同じディレクトリにあるのApp-context.xmlファイルを探します。
しかし、それはJunit5にテストとなり
package cn.s.register;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import cn.s.register.action.UserAction;
import cn.s.register.dao.IUserDAO;
import cn.s.register.domain.User;
@SpringJUnitConfig
public class App {
@Autowired
UserAction action;
@Test
void test1() throws Exception {
action.execute();
}
@Autowired
private IUserDAO dao;
@Test
void testName() throws Exception {
User u = new User();
u.setName("欧阳");
u.setAge(14);
dao.save(u);
}
}
その後、唯一の@SpringJUnitConfigと@Test、どこで設定ファイルそれを見つけるために行きますか?
実際には、我々は非常に精通していない、この注釈を@ContextConfigurationが含まれてい@SpringJUnitConfig関連するソースコードを発見しましたか?でJUnit4は、設定ファイルの設定を探しています。それが唯一であることをJunit5 @ContextConfiguration デフォルトでは、テスト-contextプロファイルの名前を見つけるために、現在のディレクトリであります
/**
* {@code @SpringJUnitConfig} is a <em>composed annotation</em> that combines
* {@link ExtendWith @ExtendWith(SpringExtension.class)} from JUnit Jupiter with
* {@link ContextConfiguration @ContextConfiguration} from the <em>Spring TestContext
* Framework</em>.
*
* @author Sam Brannen
* @since 5.0
* @see ExtendWith
* @see SpringExtension
* @see ContextConfiguration
* @see org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface SpringJUnitConfig {
----(因为篇幅问题- -)下面是SpringJUnitConfig的方法,大家可以自行去spring源码中查看
}
ときに、プロパティを設定ファイルのパスのカスタム表情で再構成することができることは、我々は@ContextConfiguration
package cn.s.register;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import cn.s.register.action.UserAction;
import cn.s.register.dao.IUserDAO;
import cn.s.register.domain.User;
@SpringJUnitConfig
@ContextConfiguration("classpath:cn/s/register/App-context.xml")
public class App {
@Autowired
private IUserDAO dao;
@Test
void testName() throws Exception {
User u = new User();
u.setName("欧阳");
u.setAge(14);
dao.save(u);
}
}