簡體   English   中英

如何在Spy類的Groovy中使用Spock框架對測試日志記錄錯誤進行單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM