SSMフレームにおけるテストユニットの使用spring統合Junnitプロセスの詳細


テストクラスの問題と解決の考え方
問題
テストクラスでは、各テスト方法には以下の2つのコードがあります。

ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); 

IAccountService as = ac.getBean("accountService",IAccountService.class);
この2行のコードの役割は、コンテナを取得することです。書かないと、直接に空のポインタに異常があります。だからまた簡単に削除することができません。
考え方の分析を解決する
上記の問題に対して必要なのは、プログラムが自動的にコンテナを作成してくれることです。プログラムが自動的にspring容器を作成してくれると、マニュアルで作成する必要がなく、問題も解決されます。
私達はすべて知っていて、junnitユニットのテストの原理(web段階の課程の中で言ったことがあります)、しかし明らかに、junitは実現することができないので、それは自分ですべて私達がspringフレームを使ったかどうかを知ることができないため、更にspring容器を創立することに役立ちます。でも、junnitは私達に注釈を暴露しました。運転器を交換してもいいです。
このとき、私たちはスプリングスフレームに頼る必要があります。これは、設定ファイル(またはコメント)を読み込んでコンテナを作成することができます。私たちは配置ファイルがどこにあるかを教えてくれればいいです。
設定ステップ
第一歩:junnitをコピーして統合します。jarはlibディレクトリに包みます。
ここで注意したいのは、jarパッケージを導入するには、springのaopのjarパッケージを導入する必要があります。
第二ステップ:@RunWith注解を使って既存の運転器を置換する。

/**
*    
* @Version 1.0
*/ @RunWith(SpringJUnit4ClassRunner.class) public class AccountServiceTest {
}
ステップ3:@Contect Configrationを使ってspringプロファイルの位置を指定します。

/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
}
@Contect Configrationコメント:
locations属性:プロファイルの位置を指定します。クラスパスの場合は、クラスパスを使用する必要があります。classis属性を示します。注釈を指定するクラスです。xmlプロファイルを使用しない場合は、この属性で注釈クラスの位置を指定する必要があります。
第四ステップ:@Autowiredを使って試験クラスの変数にデータを注入します。

/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
@Autowired
private IAccountService as ;
}
なぜテストクラスをxmlに配合しないですか?
この問題を説明する前に、まずみんなの懸念を解消して、XMLに配合して使うことができますか?答えは肯定的です。大丈夫です。使えます。
なぜxmlに配置する方式を採用しないですか?この原因はこうです。
第一:私たちはxmlにbeanを配置し、springロードプロファイルをコンテナに作成すると、オブジェクトを作成します。
第二:テストクラスは私たちがテスト機能を使う時だけで、プロジェクトの中ではプログラムロジックに参加しなくて、需要上の問題を解決できないので、作成しました。使っていません。容器の中にあると資源の無駄になります。
したがって、上記の2点に基づいて、テストをxmlファイルに配置してはいけません。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。