2 votes

Mockito - MockSettings avec spring

Je suis en train d'essayer de configurer un objet simulé (en utilisant Mockito) via la configuration de bean Spring, cependant je ne sais pas comment configurer MockSettings pour cet objet. Surtout, je voudrais configurer l'objet de manière sérialisable.

Programmatiquement, c'est possible en :

Object serializableMock = mock(Object.class, withSettings().serializable());

     ???  

Est-ce que quelqu'un peut me guider sur la marche à suivre ? Merci d'avance

BTW : Je veux utiliser une configuration purement en XML.

1voto

Brice Points 5129

Seulement via XML, vous ne pouvez pas.

En fait, je ne vous recommanderais pas d'avoir la pratique habituelle d'utiliser des faux de Mockito dans spring pour les tests. Voici pourquoi :

  • Généralement lors des Tests Unitaires, vous voulez tester une classe en isolation, après tout, c'est le test unitaire, donc l'injection de dépendance Spring n'est pas du tout nécessaire dans ce cas. Vous injectez simplement les collaborateurs de votre sujet de test vous-même ou peut-être via la pratique pratique @InjectMock.

  • Cependant, si vous avez besoin de tester des choses avec un autre système comme un DAO avec une base de données, alors vous avez probablement besoin du câblage Spring pour vous connecter soit à la vraie base de données, soit à une base de données en mémoire comme H2. Mais dans ce cas, vous êtes en train de créer un Test d'Intégration. Et vous n'avez probablement pas besoin de faux dans ce cas.

Ceci dit, vous pourriez avoir des besoins spécifiques et le point ci-dessus pourrait être sans importance dans votre contexte borné spécifique. Mais encore une fois, à mon avis, s'il est spécifique, je ne pense pas que ce soit exagéré de créer vous-même un simple bean factory (qui pourrait même être configurable).

Par exemple, vous pourriez écrire cela une fois pour toutes dans un module technique de votre application :

public class SpringMockSettingsFactoryBean extends AbstractFactoryBean {
    @Override public Class getObjectType() {
        return MockSettings.class;
    }

    @Override protected Multimap createInstance() throws Exception {
        // ... your code

        return mockSettings;
    }
}

Il y a un projet springockito sur bitbucket qui essaye d'avoir un espace de noms axé sur mockito dans spring. Je ne pense pas que le projet puisse le faire, mais l'auteur du framework pourrait être intéressé pour implémenter la fonctionnalité.

J'espère que cela vous aidera.

1voto

TheWhiteRabbit Points 4985

Oui, vous pouvez le faire via XML

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X