Używam Springa 3.1.4.RELEASE i Mockito 1.9.5. Na moich zajęciach wiosennych mam:
@Value("#{myProps['default.url']}")
private String defaultUrl;
@Value("#{myProps['default.password']}")
private String defaultrPassword;
// ...
Z mojego testu JUnit, który obecnie skonfigurowałem w następujący sposób:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-context.xml" })
public class MyTest
{
Chciałbym sfałszować wartość mojego pola „defaultUrl”. Zauważ, że nie chcę naśladować wartości dla innych pól - chciałbym zachować je takimi, jakimi są, tylko pole „defaultUrl”. Zauważ również, że nie mam jawnych metod "ustawiających" (np. setDefaultUrl
) W mojej klasie i nie chcę tworzyć żadnych tylko do celów testowych.
Biorąc to pod uwagę, jak mogę zakpić wartość dla tego jednego pola?
ReflectionTestUtils.setField(bean, "fieldName", "value");
przed wywołaniembean
metody podczas testu.