J'utilise Spring 3.1.4.RELEASE et Mockito 1.9.5. Dans ma classe de printemps, j'ai:
@Value("#{myProps['default.url']}")
private String defaultUrl;
@Value("#{myProps['default.password']}")
private String defaultrPassword;
// ...
De mon test JUnit, que j'ai actuellement mis en place comme ceci:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" })
public class MyTest
{
Je voudrais moquer une valeur pour mon champ "defaultUrl". Notez que je ne veux pas simuler les valeurs des autres champs - j'aimerais les garder telles quelles, uniquement le champ "defaultUrl". Notez également que je n'ai pas de méthode "setter" explicite (par exemple setDefaultUrl
) dans ma classe et que je ne veux pas en créer juste à des fins de test.
Compte tenu de cela, comment puis-je me moquer d'une valeur pour ce champ?
ReflectionTestUtils.setField(bean, "fieldName", "value");
avant d'appeler votrebean
méthode pendant le test.