0

Spotbug 给出了以下代码的违规行为

 @SpringBootTest
    @ActiveProfiles("test")
    class LocationServiceTest {
    
    @MockBean
    LocationService locationService;
    
    @Test 
    void shouldFetchAllLocation_whenQueried() {
       when(locationService.findAll(any(),any()).thenReturn(List.of(location("LOC1"), location("LOC2"))
    }
    
   private Location location(String id) {
        return Location.builder()
               .id(id)
               .name("name"+id)
               .postalAddress("PostalAddress")
               .region("region")
               .build();       
}
    }

这个方法(位置)广泛使用了另一个类的方法而不是它自己的方法,但是在同一个类中调用的方法 location(String id)仅不在任何其他测试类中,但仍然给出了这个污点违规。

谢谢你的帮助 !!

4

1 回答 1

0

代替

return Location.builder()
               .id(id)
               .name("name"+id)
               .postalAddress("PostalAddress")
               .region("region")
               .build();

做这个

return new Location(id, "name"+id, "PostalAddress","region");
  • 当然,您应该在 Location 类中有一个匹配的构造函数。

它将修复CE_CLASS_ENVY FindBugs 问题

于 2021-08-18T20:45:42.917 回答