3

次の構造があります。

メイン構成クラス。

@TestConfiguration
@Import({MainApplication.class, ConfigA.class, ConfigB.class})
public class MainTestConfiguration {
}

そして、2 つの別個の構成クラス。

@TestConfiguration
public class ConfigA {
    @Bean
    public EtcDao etcDao() {
         // return custom etcDao
    }
}

@TestConfiguration
public class ConfigB {
    @Bean
    public SomeBean someBean() {
         // return custom someBean
    }
}

テストは次のとおりです。

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MainTestConfiguration.class)
public class MotherTest {

    @Test
    public void test() {
        // test
    }
}

この構造では、BeanEtcDaoとのテスト定義SomeBeanは無視され、これらの Bean のメイン コンテキスト定義が使用されます (からMainApplication.class)。@SpringBootTestしかし、これらの個別の構成をlikeに含めると、@SpringBootTest(classes = {ConfigA.class, ConfigB.class})適切に機能します。@Includeこれらの個々の構成クラスの Bean を初期化できませんか? MainApplication.classまたは、犯人はそれらと一緒に含めることですが、そこから他の構成が必要なので、この方法で実装する必要がありました。

4

0 に答える 0