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 votrebeanméthode pendant le test.