73 votes

MockitoJUnitRunner est obsolète

J'essaie de faire un test unitaire avec @InjectMocks et @Mock .

 @RunWith(MockitoJUnitRunner.class)
public class ProblemDefinitionTest {

    @InjectMocks
    ProblemDefinition problemDefinition;

    @Mock
    Matrix matrixMock;    

    @Test
    public void sanityCheck() {
        Assert.assertNotNull(problemDefinition);
        Assert.assertNotNull(matrixMock);
    }
}
 

Lorsque je n'inclue pas l'annotation @RunWith , le test échoue. Mais

Le type MockitoJUnitRunner est obsolète

J'utilise Mockito 2.6.9. Comment dois-je m'y prendre?

148voto

Nicolas Filotto Points 32004

org.mockito.runners.MockitoJUnitRunner est en effet aujourd'hui obsolète, vous êtes censé utiliser org.mockito.junit.MockitoJUnitRunner à la place. Comme vous pouvez le voir seulement le nom du paquet a changé, le simple nom de la classe est encore MockitoJUnitRunner.

Extrait de la javadoc de l' org.mockito.runners.MockitoJUnitRunner:

Déplacé MockitoJUnitRunner, cette classe sera supprimé avec Mockito 3

11voto

MateuszW90 Points 779

Vous pouvez essayer ceci:

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

Comme vous ajoutez des annotations @Before , vos objets fictifs peuvent être nouveaux et enregistrés plusieurs fois, et vous pouvez attribuer de nouvelles propriétés aux objets dans tous les tests. Toutefois, si vous souhaitez un comportement d'enregistrement unique pour un objet fantaisie, veuillez ajouter @BeforeCLass

5voto

git pull origin Points 108

Il existe également une option @Rule :

 @Rule 
public MockitoRule rule = MockitoJUnit.rule();
 

Ou à Kotlin:

 @get:Rule
var rule = MockitoJUnit.rule()
 

-2voto

Hiccup Points 315

Vous pouvez essayer ceci si vous ne voulez pas utiliser @RunWith (MockitoJUnitRunner.class)

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X