【发布时间】:2015-06-10 15:18:55
【问题描述】:
例如我有处理程序:
@Component
public class MyHandler {
@AutoWired
private MyDependency myDependency;
@Value("${some.count}")
private int someCount;
public int someMethod(){
if (someCount > 2) {
...
}
}
为了测试它,我编写了以下测试:
@RunWith(MockitoJUnitRunner.class}
class MyHandlerTest {
@InjectMocks
MyHandler myHandler;
@Mock
MyDependency myDependency;
@Test
public void testSomeMethod(){
ReflectionTestUtils.setField(myHandler, "someCount", 4);
myHandler.someMethod();
}
}
我可以使用 ReflectionTestUtils 模拟变量 someCount。我可以使用 Mockito 注释以某种方式模拟它吗?
【问题讨论】:
-
这个答案给出了我们使用的替代方案:为您的测试创建一个
Propertiesbean,并让 Spring 将这些值连接到@Value注释中:stackoverflow.com/a/23224535/1777072
标签: java spring unit-testing mocking mockito