【发布时间】:2021-04-30 15:07:29
【问题描述】:
有没有办法在不使用 powermock 的情况下模拟 @Slf4j 中的记录器?当使用这个注解时,它会创建一个像这样的记录器
private static final Logger log = LoggerFactory.getLogger(Sample.class);
我知道标准mockito 不支持静态模拟,所以我试图找到一种重构方法,使其变为非静态。我希望记录器像默认的 @Slf4j 记录器一样工作,但在测试中我只希望记录器在调用时不执行任何操作。
这就是我试图让我的测试类看起来像的样子。
@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleTest {
@Mock
//This is where I want my logger to be mocked
Logger log;
Sample sample;
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
doNothing.when(log.debug(anyString()));
}
任何见解将不胜感激。
【问题讨论】:
标签: java unit-testing logging mocking mockito