https://github.com/boolivar/mockito-inline-extension
JUnit Extension to simplify Mockito static and constructor mocking
https://github.com/boolivar/mockito-inline-extension
junit5 mockito testing
Last synced: about 1 year ago
JSON representation
JUnit Extension to simplify Mockito static and constructor mocking
- Host: GitHub
- URL: https://github.com/boolivar/mockito-inline-extension
- Owner: boolivar
- License: mit
- Created: 2024-11-26T00:53:18.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-10T22:11:24.000Z (over 1 year ago)
- Last Synced: 2025-03-10T22:24:34.103Z (over 1 year ago)
- Topics: junit5, mockito, testing
- Language: Java
- Homepage:
- Size: 97.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
mockito-inline-extension
---
[](https://github.com/boolivar/mockito-inline-extension/actions/workflows/ci.yml)
[](https://github.com/boolivar/mockito-inline-extension/blob/1.0.0/LICENSE)
[](https://central.sonatype.com/artifact/io.github.boolivar/mockito-inline-extension)
[](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
JUnit jupiter extension for Mockito construction and static mocking.
```xml
io.github.boolivar
mockito-inline-extension
1.0.0
test
```
```gradle
testImplementation "io.github.boolivar:mockito-inline-extension:1.0.0"
```
Construction mock
---
Mockito:
```java
class FooTest {
@Test
void testFoo() {
try (MockedConstruction mocked = mockConstruction(Foo.class)) {
Foo foo = new Foo();
when(foo.method()).thenReturn("bar");
assertEquals("bar", foo.method());
verify(foo).method();
}
}
}
```
MockitoInlineExtension:
```java
@ExtendWith(MockitoInlineExtension.class)
class FooTest {
@ConstructionMock(Foo.class)
@Test
void testFoo() {
Foo foo = new Foo();
when(foo.method()).thenReturn("bar");
assertEquals("bar", foo.method());
verify(foo).method();
}
}
```
`@ConstructionMock` supports list of classes to mock for single test. Test method can accept arguments of type `MockedConstruction` parameterized by mocked type:
```java
@ConstructionMock({Foo.class, Bar.class})
@Test
void testFooBar(MockedConstruction mockedFoo, MockedConstruction mockedBar) {
}
```
Optional mock initialization method can be provided with the same name as test, accepting actual mock and `MockedConstruction.Context` arguments:
```java
void testFooBar(Foo mock, MockedConstruction.Context context) {
}
void testFooBar(Bar mock, MockedConstruction.Context context) {
}
```
Static mock
---
Mockito:
```java
class FooTest {
@Test
void testFoo() {
try (MockedStatic mocked = mockStatic(Foo.class)) {
mocked.when(Foo::method).thenReturn("bar");
assertEquals("bar", Foo.method());
mocked.verify(Foo::method);
}
}
}
```
MockitoInlineExtension:
```java
@ExtendWith(MockitoInlineExtension.class)
class FooTest {
@StaticMock(Foo.class)
@Test
void testFoo(MockedStatic mocked) {
mocked.when(Foo::method).thenReturn("bar");
assertEquals("bar", Foo.method());
mocked.verify(Foo::method);
}
}
```