package org.junit.tests.validation; import static org.junit.Assert.assertEquals; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.JUnitCore; import org.junit.runner.Request; import org.junit.runner.Result; public class ValidationTest { public static class WrongBeforeClass { @BeforeClass protected int a() { return 0; } } @Test public void initializationErrorIsOnCorrectClass() { assertEquals(WrongBeforeClass.class.getName(), Request.aClass(WrongBeforeClass.class).getRunner().getDescription().getDisplayName()); } public static class NonStaticBeforeClass { @BeforeClass public void before() { } @Test public void hereBecauseEveryTestClassNeedsATest() { } } @Test public void nonStaticBeforeClass() { Result result = JUnitCore.runClasses(NonStaticBeforeClass.class); assertEquals("Method before() should be static", result.getFailures().get(0).getMessage()); } }