Impossible de trouver un SpringBootConfiguration au Printemps de Démarrage Test 1.4
Je ne suis pas en mesure d'exécuter un test simple au printemps de démarrage 1.4. J'ai suivi le tutoriel du site officiel test-le-spring-mvc-tranche mais je n'ai pas l'obtenir pour fonctionner.
chaque fois que je reçois l'erreur suivante:
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
des idées, des conseils?
Merci d'avance
Edit:
c'est le contrôleur
@Controller
public class UserManagementController {
@GetMapping(value = "/gs/users/getUsers")
public @ResponseBody String getAllUsers() {
return "test";
}
}
c'est le test
@RunWith(SpringRunner.class)
@WebMvcTest(UserManagementController.class)
public class UserManagementControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void showUserView() throws Exception {
this.mvc.perform(get("/gs/users/getUsers"))
.andExpect(status().isOk())
.andDo(print());
}
}
De mon point de vue, c'est exactement le même que ce post à partir du site.
la @WebMvcTest
fera:
- Auto-configurer Spring MVC, Jackson, Gson, Message convertisseurs etc.
- Charger les composants concernés (
@Controller
,@RestController
,@JsonComponent
etc) - Configurer MockMVC
maintenant pourquoi j'ai besoin de configurer un "super" classe
comme le msg dit, utiliser l'une des autres annotations
Oui c'est vrai. Mais dans l'officiel docs ils disent que vous pouvez l'utiliser et c'est assez.
si vous fournissez-vous testé la classe et le test lui-même, il pourrait être plus clair
j'ai mis à jour ma réponse, il œuvre pour moi, j'espère qu'elle vous aider
Oui c'est vrai. Mais dans l'officiel docs ils disent que vous pouvez l'utiliser et c'est assez.
si vous fournissez-vous testé la classe et le test lui-même, il pourrait être plus clair
j'ai mis à jour ma réponse, il œuvre pour moi, j'espère qu'elle vous aider
OriginalL'auteur Manu Zi | 2016-10-24
Vous devez vous connecter pour publier un commentaire.
De sorte que vous avez annoté votre test avec @*Test. Il exécuter, vérifier la configuration dans les sous-classes, n'ont pas trouvé de tout, de la levée d'une exception.
Vous devez avoir une config dans un emballage ou un sous-paquetage de la classe de test ou de passer directement config classe de
@ContextConfiguration
ou@SpringBootTest
ou ont de la classe annotée avec@SpringBootApplication
.Selon
@SpringBootApplication
. J'ai testé contrôleur dans la façon dont vous l'avez mentionné avec@WebMvcTest
: il fonctionne si l'application a de la classe annotée comme@SpringBootApplication
et échoue avec l'exception que vous avez mentionné, si pas. Il n'y a remark l'article que vous avez mentionné:Github discussion sur le même point.
Printemps De Démarrage De La Documentation
génial, merci
J'ai le même problème. Je voudrais éviter pointant vers mon principal configuration de la production, depuis le chargement de la base de données des trucs et simple test dure trop longtemps. J'ai pensé à @WebMvcTest charge le léger configuration (pas de db, le minimum de mise en réseau), donc je vais moquer de la couche de service et de tester rapidement la logique du contrôleur. Mais ça ressemble à des contrôleurs de test je test de la pile toujours, créer DB objets etc.
OriginalL'auteur Sergii Getman