オリジナル住所:https://www.cnblogs.com/bihanghang/p/10023759.html
@ContextConfiguration
この注釈は、一般@RunWith(SpringJUnit4ClassRunner.class)
の併用を試験するために使用します
クラスがコメントを追加すると@Component
、その後、彼は自動的に豆となり、あなたはSpring構成ファイルが設定されている表示する必要はありません。これらのBeanには、2つの方法、JavaとXMLの方法のように通常収集します。これらのBeanが収集したとき、我々はテストクラスで使用する場合、@Autowired
これらを収集するために豆の注釈を導入したとき、ちょうど追加するには、このテストクラスを与え@ContextConfiguration
、我々はテストクラスの一部をインポートするBeanをマークするために注釈を。
XML
のは、高齢者のためのXMLの方法を見てみましょう:
<?xml version = "1.0"エンコード= "UTF-8"?> <豆のxmlns = "http://www.springframework.org/schema/beans" のxmlns:XSI = "http://www.w3.org / 2001 / XMLスキーマ・インスタンス"のxmlns:P = "http://www.springframework.org/schema/p" のxmlns:コンテキスト = "http://www.springframework.org/schema/context" XSI:のschemaLocation =" http://www.springframework.org/schema/beans ます。http:// www.springframework.org/schema/beans/spring-beans-3.1.xsd ます。http:// www.springframework.org/schema/context のhttp:/ / www.springframework.org/schema/context/spring-context-3.1.xsd> <! -自动扫描该包- > <コンテキスト:コンポーネント・スキャン塩基パッケージ = "COM" /> </豆>
このXMLファイル<context:component-scan base-package="com" />
豆袋コムの下のラベルが自動的にすべての着信をスキャンします。
ここでは、テストすることができるようになります。
一般的な書き込み:
@RunWith(SpringJUnit4ClassRunner クラス) @ContextConfiguration(位置 = { "クラスパス* / * XML" }) パブリック クラスCDPlayerTest { }
@ContextConfiguration
ブラケットはlocations = {"classpath*:/*.xml"}
、先ほど作成したXMLファイルが含まれますように、すべての.xmlファイルにクラスパスが、含まれていると言う、それは自動的にあなたが得ることができる豆の内部をスキャンし、その後、あなたはクラスでテストすることができます使用@Autowired
すべてのBeanを取得するには、注釈の前にパッケージの下に自動スキャンを
classpath和classpath*区别:
-
クラスパス:ファイルのみを見つけるためにあなたのクラスパスを見つけます。
-
クラスパス*:クラスパスだけでなく、また、それを見つけるためにjarファイル(クラスパス)が含まれています。
ジャワ
あなたは非常にシンプルになりますJavaの道を使用している場合、我々は上記のみ、このクラスに追加する必要があり、我々は代わりにXMLファイルのJavaクラスを作成することができますので、複雑なXML文書を記述する必要はありません@Configuration
、その後、コメントを追加@ComponentScan
開くために注釈を自動スキャン、ノートは括弧内のものを書いていない場合は、同じ@ ComponentScanデフォルトスキャン設定のクラスパッケージ。
@Configuration @ComponentScan パブリック クラスCDPlayConfig { }
あなたはそれをテストしたい場合は、この時点で、あなたは書くことができます。
@RunWith(SpringJUnit4ClassRunner。クラス) @ContextConfiguration(クラス = CDPlayConfig。クラス) パブリック クラスCDPlayerTest { }
XMLと比較すると、それは仕方の公式の提唱者である、非常にクールではありません。
春ブーツ試験で
@RunWith(SpringJUnit4ClassRunner。クラス) @SpringBootTest パブリック クラスのテスト{ }
これは、注釈@SpringBootTest SpringBootがすべて含まれるメインクラス豆に導入することを意味します。
このときSpringBootメインクラスはまた、コレクタBeanとして使用されます。上記同様CDPlayConfig。
@SpringBootApplication @SpringBootConfiguration @ComponentScan(basePackages = { "com.bihang *" }) パブリック クラス CarOrderWebApplicationは延びSpringBootServletInitializer { @Overrideが 保護SpringApplicationBuilderの設定(SpringApplicationBuilderビルダー){ 戻り builder.sources(CarOrderWebApplication クラス)。 } パブリック 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(CarOrderWebApplication。クラス、引数)。 } }