Spring Boot バージョン: 2.0.4.RELEASE
以下の Spring Boot テストの場合、テストは不要な 401 応答を返します:
"401" status, "error": "unauthorized"
テストの Spring Security を無効にする最良の方法は何ですか?
次のように構成「security.basic.enabled = false」プロパティを追加しようとしました:
@SpringBootTest(<br>
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,<br>
classes = TestApp.class,<br>
properties = {
"security.basic.enabled=false"
})
また、この注釈をクラスに追加します。
@AutoConfigureMockMvc(secure = false)
しかし残念なことに、このテストは依然として "401" の無許可のエラー コードを返します。
オリジナルテスト
@RunWith(SpringRunner.class)
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = App.class
)
public class ExampleTest{
@Autowired
public void setup(@LocalServerPort int port) {
RestAssured.port = port;
}
@Test
public voidtestMethod() {
// This test code is not important to my question.
given().log().all().get("/resources").then().log().all().statusCode(HttpURLConnection.HTTP_BAD_REQUEST).body("error", equalTo("invalid_request")).body(not(containsString("error_reason")));
}
}
単体テストされるクラスは単純です。
@SpringBootApplication
@RestController
public class App {
@GetMapping("/resources")
public String[] resources(
@RequestParam("mandatory_param") String mandatory,
@RequestParam("valid_param") @NotNull String validParam) {
return new String[]{"1", "2"};
}
...
}
テストの春のセキュリティを無効にする方法を知っている人はいますか? ありがとうございました