Ho uno Spring MVC @Controller
con questo costruttore:Iniettando una proprietà String con @InjectMocks
@Autowired
public AbcController(XyzService xyzService, @Value("${my.property}") String myProperty) {/*...*/}
Voglio scrivere un test di unità standalone per questo controller:
@RunWith(MockitoJUnitRunner.class)
public class AbcControllerTest {
@Mock
private XyzService mockXyzService;
private String myProperty = "my property value";
@InjectMocks
private AbcController controllerUnderTest;
/* tests */
}
C'è un modo ottenere @InjectMocks
per iniettare la mia proprietà String? So che non posso prendere in giro una stringa dal momento che è immutabile, ma posso semplicemente inserire una stringa normale qui?
@InjectMocks
inietta un valore di default in questo caso. @Mock
getta comprensibilmente un'eccezione se la metto su myProperty
. C'è un'altra annotazione che mi è sfuggita che significa semplicemente "iniettare questo oggetto esatto piuttosto che un Mock di esso"?
So che posso istanziare solo manualmente il mio controller in un metodo di impostazione, ma spero di trovare una soluzione nello stile di configurazione delle annotazioni. Grazie! –