私はspring-boot-starter-securityを導入するまでは簡単な統合テストを持つ単純なスプリングブート(1.3.5)アプリケーションを持っています。私はapplication.propertiesにsecurity.user.nameとsecurity.user.passwordを設定しました。これは私のエンドポイントをパスワードで保護する必要があるようです(できるだけ不必要な役割やセキュリティ設定を追加することで、 )。しかし今、統合テストは失敗します。私のテストクラス:どのように私は基本的な認証でSpring Bootを統合テストするのですか?
カールhttp://user:[email protected]:8181/hello
のためのアサート:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest(randomPort = true)
public class MyTestsIT {
private TestRestTemplate template = new TestRestTemplate();
private URL base;
@Value("${security.user.name}")
private String username;
@Value("${security.user.password}")
private String password;
@Value("${local.server.port}")
private int port;
@Before
public void beforeTest() throws MalformedURLException {
base = new URL("http://" + username + ":" + password + "@localhost:" + port);
}
@Test
public void testHello() throws IllegalStateException, IOException {
System.err.println(base.toString() + "/hello");
ResponseEntity<String> response = template.getForEntity(base.toString() + "/hello", String.class);
assertEquals("Incorrect HTTP status returned", HttpStatus.OK, response.getStatusCode());
String body = response.getBody();
assertEquals("Incorrect response string.", "Hello World!", body);
}
}
のprintln文は、私はアプリを実行したときにカールして使用することができました同じ1正しいURLが表示されます返品ステータスが401で失敗していますが、何が間違っていますか?