An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

mockito-inline-extension
---

[![CI](https://github.com/boolivar/mockito-inline-extension/workflows/CI/badge.svg)](https://github.com/boolivar/mockito-inline-extension/actions/workflows/ci.yml)
[![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/boolivar/mockito-inline-extension/blob/1.0.0/LICENSE)
[![Maven Central](https://img.shields.io/maven-central/v/io.github.boolivar/mockito-inline-extension)](https://central.sonatype.com/artifact/io.github.boolivar/mockito-inline-extension)

[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=boolivar_mockito-inline-extension&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=boolivar_mockito-inline-extension&metric=coverage)](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=boolivar_mockito-inline-extension&metric=bugs)](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=boolivar_mockito-inline-extension&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=boolivar_mockito-inline-extension)
[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=boolivar_mockito-inline-extension&metric=duplicated_lines_density)](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);
}
}
```