2009-07-19 24 views
6

Có một appender cho log4j chỉ lưu trữ một danh sách các sự kiện ghi nhật ký (được sử dụng trong các bài kiểm tra đơn vị, để xác minh không có nhật ký lỗi nào được ghi)?Trong bộ nhớ 'list appender' cho log4j

Trả lời

2

Có một MemoryAppender, nhưng nó không phải là một phần của thư viện log4j chuẩn.

Bạn có thể dễ dàng viết của riêng bạn, Nhưng nếu bạn chỉ sử dụng chúng cho các bài kiểm tra đơn vị tôi có lẽ sẽ thử Logger và khẳng định không có cuộc gọi nào được thực hiện cho nó. Ghi đè lên phương thức getLogger() trong lớp đích hoặc thiết lập Logger giả lập trực tiếp trên kiểu.

Sử dụng JMock (ví dụ từ bộ nhớ, xin lỗi vì bất kỳ lỗi nào):

public void testDoFoo() { 
    Mockery mockery = new Mockery(); 
    Logger mockLogger = mockery.mock(Logger.class); 

    Foo foo = new Foo(); 

    foo.setLogger(mockLogger); 

    mockery.checking(new Expectations() { 
     { 
      never(mockLogger).debug(with(any(String.class)); 
     } 
    }; 

    ... 
    //do the actual test. 

    //assert the mock type has never been called. 
    mockery.assertIsSatisfied(); 
} 
1

Tôi không tin là có. Bạn có thể viết của riêng bạn một cách dễ dàng, mặc dù. Đây là một số suitable tutorial.

+0

tôi đã làm rồi, cảm ơn. – ripper234

Các vấn đề liên quan