新しい Spring 構成を利用してプロジェクトを作成しています。いくつかのプロパティを保持する基本クラスがあります。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {Basic.class, Protected.class})
public class BaseTest {
@Autowired(required = false) protected String userName;
@Autowired(required = false) protected String password;
@Autowired protected String baseURL;
@Test
public void outputData() {
System.out.println("UserName: " + userName + " Password: "
+ password + "Base URL: " + baseURL);
}
}
@ActiveProfiles("default,protected")
public abstract class ProtectedTest extends BaseTest
{
@Autowired protected String userName;
@Autowired protected String password;
}
@Configuration @Profile("default")
public class Basic {
@Bean public String baseURL() { return "http://www.baseURL.com"; }
}
@Configuration @Profile("protected")
public class Protected {
@Bean public String userName() { return "userName"; }
@Bean public String password() { return "password"; }
}
しかし、保護されたテストを実行しようとすると、ベース URL が正しく配線されていないという通知を受け取ります。これは BaseTest を拡張し、両方のプロファイルがアクティブになっているため、baseURL Bean を受信しないのはなぜですか?