[英]How to unit test logging error with Spock framework in groovy in a Spy-Class
我有一個類,其中包含必須模擬的方法。
這就是為什么我使用Spy()的原因:
MyClass myClass = Spy(MyClass)
提出以下問題: 如何在Groovy中使用Spock框架對記錄錯誤進行單元測試我可以成功獲取記錄消息,但是對於這一點,我無法僅使用此類的常規實例化:
MyClass myClass = new MyClass()
當類是間諜時,如何在Spock測試中獲取日志消息?
測試日志記錄的一種通用方法是編寫一個簡單的追加器,將事件存儲在內存中,設置日志記錄配置以在測試中使用它,然后在運行測試的代碼后,獲取記錄的事件並進行驗證。
假設使用Logback,則可以這樣編寫測試附加程序:
public class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private static final List<String> events = new ArrayList<>();
public static synchronized List<String> getEvents() {
return new ArrayList<>(events);
}
@Override
protected void append(ILoggingEvent event) {
synchronized(InMemoryAppender.class){
events.add(event.getFormattedMessage());
}
}
}
我認為間諜沒有任何幫助,因為它是在對象的方法上而不是在其內部行為上進行間諜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.