@ContextConfiguration(locations = { "/applicationContext.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class TestUnit2 {
@Mock
private MongoOperations mongoTemplate;
@InjectMocks
@Autowired
private WorkcircleRepositoryMongoImpl workCircleRepository;
@Autowired
private WorkcircleServiceImpl workCircleServiceImpl;
@Before
public void setUp() {
....
when(mongoTemplate.findOne(new Query(), Person.class)).thenReturn(expectedPerson);
MockitoAnnotations.initMocks(this);
}
@Test
public void test() {
... workCircleServiceImpl.find()...
}
但是测试失败了:
NP中的“... workCircleServiceImpl.find()...”行,
以单独的方式@InjectMocks& @Autowired工作,但一起工作不起作用。
答案 0 :(得分:8)
通常在进行单元测试时,不应初始化Spring上下文。 因此,请删除自动装配。
通常在进行集成测试时,您应该使用真正的依赖项。 所以删除模拟。
您正在混合集成和单元测试。