首页 > 解决方案 > 如何使用注入类进行测试?Junit 返回 NPE

问题描述

我有一个简单的服务,如下所示

@Service
public class MyService {
   @Inject SomeClass someClass;

   public resp doSomething(){
     return someclass.executeSomething();
   }
}

这是我的测试:

public class SomeServiceTest {
   @Mock
   SomeClass someClass;

   MyService myService;

   @Before
   public setUp() {
      myService = new MyService();
   }

   @Test
   public void testExecute() {
      Resp resp = myService.doSomething();
      assertNotNull(resp);
   }
}

指向时出现空指针异常someclass.executeSomething(); where someclass is null。如何模拟注入的类?

标签: javajunitmockito

解决方案


就像我之前的评论中建议的那样,这样应该可以解决问题。

@RunWith(MockitoJUnitRunner.class)
public class SomeServiceTest {
   @Mock
   SomeClass someClass;
   @InjectMocks
   MyService myService;
  
   @Test
   public void testExecute() {
      Resp resp = myService.doSomething();
      assertNotNull(resp);
   }
}

推荐阅读