Mockito, @InjectMocks странное поведение с конечными полями

Я вижу поведение, которое я считаю ошибкой. @InjectMocks, похоже, не создает новый объект тестирования перед каждым методом тестирования. Где, как @Mock делает. В следующем примере, если Subject.section является окончательным, @Test завершается ошибкой. Если это не окончательно, оба проходят. Мой текущий обходной путь - использовать @BeforeClass, но это не идеально.

Subject.java:

package inject_mocks_test;
public class Subject {

    private final Section section;

    public Subject(Section section) {
        this.section = section;
    }

    public Section getSection() {
        return section;
    }
}

Section.java:

package inject_mocks_test;

public class Section {}

SubjectTest.java

package inject_mocks_test;

import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import static org.testng.Assert.assertEquals;

public class SubjectTest {

    @Mock
    Section section;

    @InjectMocks
    Subject subject;

    @BeforeMethod
    public void setup() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void test1() {
        assertEquals(section, subject.getSection());
    }

    @Test
    public void test2() {
        assertEquals(section, subject.getSection());        
    }
}

Приветствия.

Ответы на вопрос(1)

Ваш ответ на вопрос