Nice trick!

I didn't know about the Log4j feature, but had created something
similar for JBoss Logging; it's in the ORM project though so not
easily reusable in all of Search components:
 - org.hibernate.testing.logger.LoggerInspectionRule

On 4 November 2016 at 13:41, Yoann Rodiere <yo...@hibernate.org> wrote:
> Hi team,
>
> Just so you know, if you ever need to assert that a certain log is produced
> in your JUnit tests, there's now a tool to do just that in Hibernate
> Search: org.hibernate.search.test.util.impl.ExpectedLog4jLog [1]
>
> You may use it much like you would use the ExpectedException rule:
>
> public class MyTest {
> @org.junit.Rule
> public ExpectedLog4jLog logged = ExpectedLog4jLog.create();
>
> @Test
> public void test() {
> logged.expectMessage( "HSEARCH400032", "some substring I want in the same
> log" );
>
> // ... Do test ...
> }
> }
>
> You can also assert more complex conditions on the logs, using
> a org.hamcrest.Matcher<? extends LoggingEvent>, but then it's starting to
> get a bit exotic.
>
> You may find an example of real-life use at [2].
>
> [1]
> https://github.com/hibernate/hibernate-search/blob/master/engine/src/test/java/org/hibernate/search/test/util/impl/ExpectedLog4jLog.java
> [2]
> https://github.com/hibernate/hibernate-search/blob/master/elasticsearch/src/test/java/org/hibernate/search/elasticsearch/test/ElasticsearchUnsupportedFeaturesIT.java
>
> Cheers,
>
> Yoann Rodière <yo...@hibernate.org>
> Hibernate NoORM Team
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev

_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to