anyString () boş dize yerine null
Sep 04 2020
Dao'mu test etmeye çalışıyorum, ancak anyString () 'i geçtiğimde, dao'mda boş bir dize olarak çıkıyor ve sonuç olarak, istediğim alay konusu nesnemi döndürmüyor
@InjectMocks
private Dao dao;
@Mock
@Qualifier("jdbcTemp")
private JdbcTemplate jdbcTemp;
@Test
public void testGetData() {
List<MyObj> list = new ArrayList<>();
MyObj myObj = new MyObj();
myObj.setMethod("method val");
list.add(myobj);
Mockito.when(jdbcTemp.query(anyString(), Mockito.any(PreparedStatementSetter.class),
Mockito.any(Dao.MyRowMapper.class))).thenReturn(list);
List<MyObj> res = dao.getData(param1, param2); // this is empty, instead of having a value of 1
Assertions.assertThat(res).isNotNull();
}
Benim Dao
@Autowired
private String query;
@Autowired
private JdbcTemplate jdbcTemp;
public List<MyObj> getData(String arg1, String arg2) {
List<MyObj> list = new ArrayList<MyObj>();
try {
// query below is null instead of empty string
list.addAll(jdbcTemp.query(query, new PreparedStatementSetter() {
public void setValues(PreparedStatement pstmt) throws SQLException {
pstmt.setString(PARAM_ONE, arg1);
pstmt.setString(PARAM_TWO, arg2);
}
}, new MyRowMapper()));
} catch (Exception exp) {
}
return list;
}
Yanıtlar
Campingenieur Sep 04 2020 at 14:55
Doğru olarak belirttiğiniz anyString()gibi yalnızca boş olmayan Dizeler için eşleşir. ve queryyönteminize geçerken otomatik kablolamanızın queryboş olmadığını doğrulamalısınız . Bir alternatif olarak sopa olabilir any()veya nullable(String.class)null hangi maçların. Testiniz querydeğere bağlı olmadığı için bunu güvenle kullanabilirsiniz.
Ancak, kodunuz Enjeksiyonunuzun nasıl çalıştığını göstermediğinden, sorununuzu daha fazla araştırmamız mümkün değildir. Bu sizin için gerekliyse, lütfen ilgili kod parçalarını ekleyin.
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'