認証フレームワークのテストに HTTP ユニットを使用しています。
テストでは常に最初に返されたステータス コードがチェックされるため、ログイン後にケースをテストしようとすると問題が発生します。認証されていない人が保護されたリソースにアクセスしようとすると、最初のステータス コードは 401 で、資格情報を提供する機会があり、ログイン後のステータス コードは 200 です。
認証を実行し、最後のステータス コードを待機するようにテストをプログラムするにはどうすればよいですか?
これが私が今までやっていた方法です。最初のステータス コードが 200 ではなく 401 であるため、失敗します。キープ アライブ オプションはありますか?
@Test
public void testReqRestrictedResourceWithValidRole() throws Exception
{
// Request a protected page with valid credentials and valid role
// protectedUrl requires role ADMIN
// user has role ADMIN
String username = "user";
String password = "password";
String decUserPass = username + ":" + password;
String base64encUserPass =
DatatypeConverter.printBase64Binary(decUserPass.getBytes());
webClient.addRequestHeader("Authorization", "Basic " + base64encUserPass);
Page page = webClient.getPage(protectedUrl);
int statuscode = page.getWebResponse().getStatusCode();
assertEquals(statuscode, 200, "Wrong statuscode.");
}
ありがとう!