【发布时间】:2018-10-29 07:31:08
【问题描述】:
我对 JUnit 和 Mockito 完全陌生。我在测试我的ServiceImpl 课程时遇到了问题。
当调试时指针进入ServiceImpl 类时,该方法会抛出nullPointerException。
谁能告诉我如何在“getDetails”方法中调用该方法。 "varNumber" 总是返回 null。
DetailsUtilsClientImpl 类
private final DetailsUtils detailsUtils;
@Autowired
Utils utils
@Autowired
public DetailsUtilsClientImpl( DetailsUtils
detailsUtils) {
this.detailsUtils= detailsUtils;
}
public Details getDetails( String var1 ) {
String varNumber = utils.smgContent( var1 );
Details getDetailsDocument =
detailsRepository.findById( varNumber ).orElse( null );
return null;
}
测试类
@Autowired
DetailsUtils detailsUtils;
@Autowired
DetailsUtilsClient detailsUtilsClient;
@Autowired
Utils utils
@Autowired
Pageable pageable;
@Before
public void setUp() {
detailsUtils = mock( DetailsUtils.class );
utils = mock( Utils.class );
pageable = mock( Pageable.class );
}
@Test
public void getCarDocument() {
List<Entity.Type> listPre = new ArrayList<Entity.Type>();
Entity.Type preTest = new Entity.Type();
preTest.setDesc( Mob.AUTOMOB );
preTest.setDet( Car.CAR );
listPre.add( preTest );
Entity c1 = new Entity();
c1.setId( "accountID" );
c1.setCarNo( "gfsd2134gh" );
c1.setCarDetail( "accountDet" );
c1.setEntity( listPre );
detailsUtilsClient client =
new DetailsUtilsClientImpl( detailsUtils );
Optional<Entity> client1 = Optional.of( c1 );
when( detailsUtils.findById( c1.getCarNo() ) ).thenReturn( client1 );
Entity c2 = client.getEntity ( "gfsd2134gh" );
assertThat( c2.getCarNo(), equalTo( c1.getCarNo() ) );
}
【问题讨论】:
-
你的测试类没有测试甚至没有使用ServiceImpl。它测试 DetailsUtilsClientImpl.getEntity()。
-
对不起。这是DetailsUtilsClientImpl。不是 ServiceImpl。
标签: java spring-boot junit mockito