我想注入一個模擬被我正在測試的服務類使用,但模擬似乎沒有被使用。彈簧注入模擬不使用
public class SpringDataJPARepo{ public void someMethod();// my repo }
我有希望測試
@Service
public class Service implements IService{
@Autowired
private SpringDataJPARepo repository;
public String someMethod(){ // repository instance used here }
}
服務類,我試圖通過嘲笑庫,並將其注入到服務
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={ServiceTestConfiguration.class})
public class Test{
@Mock
private SpringDataJPARepo repository;
@Autowired
@InjectMocks
private IService service;
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
when(repository.someMethod()).thenReturn("test");
}
@Test
public testSomeMethod(){
assertThat(service.someMethod()).isNotNull;
verify(repository.someMethod,atLeast(1)); //fails here
}
}
它給我寫測試用例拋出一個
通緝但未被調用
的驗證方法
我不知道在如何注入模擬到自動裝配實例。任何人都可以指出我在這裏做錯了什麼?
是您的服務或爲除了「@服務」任何Spring註解的方法,如「@交易「或」@Secured「? –
不,它沒有任何其他註釋 – austin
您的服務類除了'SpringDataJPARepo'外還有其他任何依賴嗎? – Bunti