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

Программисты JAVA общаются здесь
Ответить
Anonymous
 Mockito, странное поведение @InjectMocks с конечными полями

Сообщение Anonymous »

Я наблюдаю поведение, которое, по моему мнению, является ошибкой. @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());
}
}
С уважением.

Подробнее здесь: https://stackoverflow.com/questions/200 ... nal-fields
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»