Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-9081

Make SolrTestCaseJ4.beforeClass() / .afterClass() public so it works with Mockito

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 5.5, 5.5.1, 6.0, 6.0.1
    • 6.1
    • Tests
    • None

    Description

      SolrTestCaseJ4.beforeClass() / SolrTestCaseJ4.afterClass() are currently defined as private static void. This causes problems with Mockito, which requires all test framework methods (including @BeforeClass / @AfterClass) to be public.

      The following test case will show this:

      MockitoTest.java
      package com.example;
      
      import org.apache.solr.SolrTestCaseJ4;
      import org.junit.Test;
      import org.junit.runner.RunWith;
      import org.mockito.runners.MockitoJUnitRunner;
      
      @RunWith(MockitoJUnitRunner.class)
      public class MockitoTest extends SolrTestCaseJ4 {
      
          @Test
          public void testSomething() {
            /* Nothing to do, the test runner will fail right away */
          }
      }
      

      It will fail with java.lang.Exception: Method beforeClass() should be public

      The very trivial fix is to change both methods to public static void

      Attachments

        1. SOLR-9081.patch
          1 kB
          Alan Woodward

        Activity

          People

            romseygeek Alan Woodward
            gs Georg Sorst
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: