initial commit for powermockito
This commit is contained in:
parent
29deacf3b9
commit
ffe646f621
211
mockito/pom.xml
211
mockito/pom.xml
@ -1,124 +1,143 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
<modelVersion>4.0.0</modelVersion>
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<groupId>com.baeldung</groupId>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>mockito</artifactId>
|
<groupId>org.baeldung</groupId>
|
||||||
<version>0.1-SNAPSHOT</version>
|
<artifactId>mockito</artifactId>
|
||||||
|
<version>0.1-SNAPSHOT</version>
|
||||||
|
|
||||||
<name>mockito</name>
|
<name>mockito</name>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<!-- utils -->
|
<!-- utils -->
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.guava</groupId>
|
<groupId>com.google.guava</groupId>
|
||||||
<artifactId>guava</artifactId>
|
<artifactId>guava</artifactId>
|
||||||
<version>${guava.version}</version>
|
<version>${guava.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-lang3</artifactId>
|
<artifactId>commons-lang3</artifactId>
|
||||||
<version>${commons-lang3.version}</version>
|
<version>${commons-lang3.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- web -->
|
<!-- web -->
|
||||||
|
|
||||||
<!-- test scoped -->
|
<!-- test scoped -->
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<version>${junit.version}</version>
|
<version>${junit.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hamcrest</groupId>
|
<groupId>org.hamcrest</groupId>
|
||||||
<artifactId>hamcrest-core</artifactId>
|
<artifactId>hamcrest-core</artifactId>
|
||||||
<version>${org.hamcrest.version}</version>
|
<version>${org.hamcrest.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hamcrest</groupId>
|
<groupId>org.hamcrest</groupId>
|
||||||
<artifactId>hamcrest-library</artifactId>
|
<artifactId>hamcrest-library</artifactId>
|
||||||
<version>${org.hamcrest.version}</version>
|
<version>${org.hamcrest.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<artifactId>mockito-core</artifactId>
|
<artifactId>mockito-core</artifactId>
|
||||||
<version>${mockito.version}</version>
|
<version>${mockito.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
<dependency>
|
||||||
|
<groupId>org.powermock</groupId>
|
||||||
|
<artifactId>powermock-module-junit4</artifactId>
|
||||||
|
<version>${powermock.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.powermock</groupId>
|
||||||
|
<artifactId>powermock-api-mockito</artifactId>
|
||||||
|
<version>${powermock.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<build>
|
</dependencies>
|
||||||
<finalName>mockito</finalName>
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<directory>src/main/resources</directory>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
|
|
||||||
<plugins>
|
<build>
|
||||||
|
<finalName>mockito</finalName>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
|
||||||
<plugin>
|
<plugins>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>${maven-compiler-plugin.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<source>1.8</source>
|
|
||||||
<target>1.8</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>${maven-surefire-plugin.version}</version>
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
</plugin>
|
<configuration>
|
||||||
|
<source>1.8</source>
|
||||||
|
<target>1.8</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>${maven-surefire-plugin.version}</version>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</build>
|
</plugins>
|
||||||
|
|
||||||
<properties>
|
</build>
|
||||||
<!-- persistence -->
|
|
||||||
<hibernate.version>4.3.11.Final</hibernate.version>
|
|
||||||
<mysql-connector-java.version>5.1.38</mysql-connector-java.version>
|
|
||||||
|
|
||||||
<!-- logging -->
|
<properties>
|
||||||
<org.slf4j.version>1.7.13</org.slf4j.version>
|
<!-- Spring -->
|
||||||
<logback.version>1.1.3</logback.version>
|
<org.springframework.version>4.1.5.RELEASE</org.springframework.version>
|
||||||
|
<org.springframework.security.version>3.2.5.RELEASE</org.springframework.security.version>
|
||||||
|
|
||||||
<!-- various -->
|
<!-- persistence -->
|
||||||
<hibernate-validator.version>5.1.3.Final</hibernate-validator.version>
|
<hibernate.version>4.3.10.Final</hibernate.version>
|
||||||
|
<mysql-connector-java.version>5.1.35</mysql-connector-java.version>
|
||||||
|
|
||||||
<!-- util -->
|
<!-- logging -->
|
||||||
<guava.version>19.0</guava.version>
|
<org.slf4j.version>1.7.13</org.slf4j.version>
|
||||||
<commons-lang3.version>3.4</commons-lang3.version>
|
<logback.version>1.1.3</logback.version>
|
||||||
|
|
||||||
<!-- testing -->
|
<!-- various -->
|
||||||
<org.hamcrest.version>1.3</org.hamcrest.version>
|
<hibernate-validator.version>5.1.3.Final</hibernate-validator.version>
|
||||||
<junit.version>4.12</junit.version>
|
|
||||||
<mockito.version>1.10.19</mockito.version>
|
|
||||||
|
|
||||||
<httpcore.version>4.4.1</httpcore.version>
|
<!-- util -->
|
||||||
<httpclient.version>4.5</httpclient.version>
|
<guava.version>19.0</guava.version>
|
||||||
|
<commons-lang3.version>3.4</commons-lang3.version>
|
||||||
|
|
||||||
<rest-assured.version>2.9.0</rest-assured.version>
|
<!-- testing -->
|
||||||
|
<org.hamcrest.version>1.3</org.hamcrest.version>
|
||||||
|
<junit.version>4.12</junit.version>
|
||||||
|
<mockito.version>1.10.19</mockito.version>
|
||||||
|
<powermock.version>1.6.4</powermock.version>
|
||||||
|
|
||||||
<!-- maven plugins -->
|
<httpcore.version>4.4.1</httpcore.version>
|
||||||
<maven-compiler-plugin.version>3.5.1</maven-compiler-plugin.version>
|
<httpclient.version>4.5</httpclient.version>
|
||||||
<maven-war-plugin.version>2.6</maven-war-plugin.version>
|
|
||||||
<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
|
|
||||||
<maven-resources-plugin.version>2.7</maven-resources-plugin.version>
|
|
||||||
<cargo-maven2-plugin.version>1.4.18</cargo-maven2-plugin.version>
|
|
||||||
|
|
||||||
</properties>
|
<rest-assured.version>2.4.1</rest-assured.version>
|
||||||
|
|
||||||
|
<!-- maven plugins -->
|
||||||
|
<maven-compiler-plugin.version>3.3</maven-compiler-plugin.version>
|
||||||
|
<maven-war-plugin.version>2.6</maven-war-plugin.version>
|
||||||
|
<maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version>
|
||||||
|
<maven-resources-plugin.version>2.7</maven-resources-plugin.version>
|
||||||
|
<cargo-maven2-plugin.version>1.4.14</cargo-maven2-plugin.version>
|
||||||
|
|
||||||
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.baeldung.powermockito.introduction;
|
||||||
|
|
||||||
|
public class CollaboratorForPartialMocking {
|
||||||
|
public static String staticMethod() {
|
||||||
|
return "Hello Baeldung!";
|
||||||
|
}
|
||||||
|
|
||||||
|
public final String finalMethod() {
|
||||||
|
return "Hello Baeldung!";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String privateMethod() {
|
||||||
|
return "Hello Baeldung!";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String privateMethodCaller() {
|
||||||
|
return privateMethod() + " Welcome to the Java world.";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.baeldung.powermockito.introduction;
|
||||||
|
|
||||||
|
public class CollaboratorWithFinalMethods {
|
||||||
|
public final String helloMethod() {
|
||||||
|
return "Hello World!";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.baeldung.powermockito.introduction;
|
||||||
|
|
||||||
|
public class CollaboratorWithStaticMethods {
|
||||||
|
public static String firstMethod(String name) {
|
||||||
|
return "Hello " + name + " !";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String secondMethod() {
|
||||||
|
return "Hello no one!";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String thirdMethod() {
|
||||||
|
return "Hello no one again!";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
package com.baeldung.powermockito.introduction;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.powermock.api.mockito.PowerMockito.*;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.Mockito;
|
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest;
|
||||||
|
import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
|
|
||||||
|
@RunWith(PowerMockRunner.class)
|
||||||
|
@PrepareForTest(fullyQualifiedNames = "com.baeldung.powermockito.introduction.*")
|
||||||
|
public class PowerMockitoTest {
|
||||||
|
@Test
|
||||||
|
public void givenFinalMethods_whenUsingPowerMockito_thenCorrect() throws Exception {
|
||||||
|
CollaboratorWithFinalMethods mock = mock(CollaboratorWithFinalMethods.class);
|
||||||
|
whenNew(CollaboratorWithFinalMethods.class).withNoArguments().thenReturn(mock);
|
||||||
|
|
||||||
|
CollaboratorWithFinalMethods collaborator = new CollaboratorWithFinalMethods();
|
||||||
|
verifyNew(CollaboratorWithFinalMethods.class).withNoArguments();
|
||||||
|
|
||||||
|
when(collaborator.helloMethod()).thenReturn("Hello Baeldung!");
|
||||||
|
String welcome = collaborator.helloMethod();
|
||||||
|
Mockito.verify(collaborator).helloMethod();
|
||||||
|
assertEquals("Hello Baeldung!", welcome);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = RuntimeException.class)
|
||||||
|
public void givenStaticMethods_whenUsingPowerMockito_thenCorrect() {
|
||||||
|
mockStatic(CollaboratorWithStaticMethods.class);
|
||||||
|
|
||||||
|
when(CollaboratorWithStaticMethods.firstMethod(Mockito.anyString())).thenReturn("Hello Baeldung!");
|
||||||
|
when(CollaboratorWithStaticMethods.secondMethod()).thenReturn("Nothing special");
|
||||||
|
doThrow(new RuntimeException()).when(CollaboratorWithStaticMethods.class);
|
||||||
|
CollaboratorWithStaticMethods.thirdMethod();
|
||||||
|
|
||||||
|
String firstWelcome = CollaboratorWithStaticMethods.firstMethod("Whoever");
|
||||||
|
String secondWelcome = CollaboratorWithStaticMethods.firstMethod("Whatever");
|
||||||
|
|
||||||
|
assertEquals("Hello Baeldung!", firstWelcome);
|
||||||
|
assertEquals("Hello Baeldung!", secondWelcome);
|
||||||
|
|
||||||
|
verifyStatic(Mockito.times(2));
|
||||||
|
CollaboratorWithStaticMethods.firstMethod(Mockito.anyString());
|
||||||
|
|
||||||
|
verifyStatic(Mockito.never());
|
||||||
|
CollaboratorWithStaticMethods.secondMethod();
|
||||||
|
|
||||||
|
CollaboratorWithStaticMethods.thirdMethod();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenPartialMocking_whenUsingPowerMockito_thenCorrect() throws Exception {
|
||||||
|
String returnValue;
|
||||||
|
|
||||||
|
spy(CollaboratorForPartialMocking.class);
|
||||||
|
when(CollaboratorForPartialMocking.staticMethod()).thenReturn("I am a static mock method.");
|
||||||
|
returnValue = CollaboratorForPartialMocking.staticMethod();
|
||||||
|
verifyStatic();
|
||||||
|
CollaboratorForPartialMocking.staticMethod();
|
||||||
|
assertEquals("I am a static mock method.", returnValue);
|
||||||
|
|
||||||
|
CollaboratorForPartialMocking collaborator = new CollaboratorForPartialMocking();
|
||||||
|
CollaboratorForPartialMocking mock = spy(collaborator);
|
||||||
|
|
||||||
|
when(mock.finalMethod()).thenReturn("I am a final mock method.");
|
||||||
|
returnValue = mock.finalMethod();
|
||||||
|
Mockito.verify(mock).finalMethod();
|
||||||
|
assertEquals("I am a final mock method.", returnValue);
|
||||||
|
|
||||||
|
when(mock, "privateMethod").thenReturn("I am a private mock method.");
|
||||||
|
returnValue = mock.privateMethodCaller();
|
||||||
|
verifyPrivate(mock).invoke("privateMethod");
|
||||||
|
assertEquals("I am a private mock method. Welcome to the Java world.", returnValue);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user