У меня тестируемый класс. например,
@Service
public classs AService {
@Autowired
Field1 field1;
@Autowired
Field2 field2;
void foo() { // .... }
}
Я хочу издеваться field1
, но не field2
.
Я использую mockito следующим образом
@RunWith(SpringRunner.class)
@SpringBootTest
public class AServiceTest {
@Mock
private Field1 field1;
@InjectMocks
private AService aService;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void fooTest() {
// setup mocking behaviour and test
}
но, как и ожидалось, в этом случае field2
будет нулевым при запуске теста. Обратите внимание, что Field2
- это интерфейс, который SpringBoot превращает в код (например, Repository
), и поэтому я не могу / не хочу явно указывать его.
Есть мысли?