@ Прежде имеет смысл использовать в некоторых случаях, потому что он вызывается ПОСЛЕ конструктора для класса.Это различие важно, когда вы используете фреймворк Mockito с аннотациями @Mock, потому что ваш метод @Before будет вызываться после инициализации макетов.Затем вы можете использовать свои макеты для предоставления аргументов конструктора для тестируемого класса.
Я считаю, что это очень распространенный шаблон в моих модульных тестах при использовании сотрудничающих bean-компонентов.
Вот (по общему признанию)надуманный) пример:
@RunWith(MockitoJUnitRunner.class)
public class CalculatorTest {
@Mock Adder adder;
@Mock Subtractor subtractor;
@Mock Divider divider;
@Mock Multiplier multiplier;
Calculator calculator;
@Before
public void setUp() {
calculator = new Calculator(adder,subtractor,divider,multiplier);
}
@Test
public void testAdd() {
BigDecimal value = calculator.add(2,2);
verify(adder).add(eq(2),eq(2));
}
}