使用@InjectMocks注入一个String属性
- 论坛
- 使用@InjectMocks注入一个String属性
21 浏览
使用@InjectMocks注入一个String属性
我有一个Spring MVC的@Controller,其中包含以下构造函数:
@Autowired
public AbcController(XyzService xyzService, @Value("${my.property}") String myProperty) {/*...*/}
我想为这个Controller编写一个独立的单元测试:
@RunWith(MockitoJUnitRunner.class)
public class AbcControllerTest {
@Mock
private XyzService mockXyzService;
private String myProperty = "my property value";
@InjectMocks
private AbcController controllerUnderTest;
/* tests */
}
有没有办法让@InjectMocks注入我的String属性?我知道我不能模拟一个String,因为它是不可变的,但是我能不能在这里注入一个普通的String?
@InjectMocks在这种情况下默认注入null。如果我将其放在myProperty上,@Mock会理所当然地抛出异常。我是否错过了另一个注解,它的意思是“注入这个具体的对象,而不是它的模拟对象”?