pi-lens
Version:
Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo
67 lines (53 loc) • 1.37 kB
YAML
# Mockito Initialized
# Detects annotated Mockito objects that may not be initialized
id: mockito-initialized
name: Annotated Mockito Objects Should Be Initialized
severity: error
category: reliability
defect_class: correctness
inline_tier: blocking
language: java
message: "@Mock/@InjectMocks object should be initialized with MockitoAnnotations.openMocks()"
description: |
, , , fields must be initialized
before use. Call MockitoAnnotations.openMocks(this) in
or use MockitoJUnitRunner.
✅ FIX: Add initialization in method
```java
public void setUp() {
MockitoAnnotations.openMocks(this); // GOOD
}
```
query: |
(field_declaration
(modifiers
(annotation
name: (identifier) (#match? "^(Mock|Spy|Captor|InjectMocks)$")))
(variable_declarator
name: (identifier) ))
metavars:
- ANNOT
- FIELD
post_filter: missing_mockito_init
tags:
- reliability
- java
- mockito
- testing
examples:
bad: |
private Service service; // BAD - not initialized
public void test() {
service.doSomething(); // NullPointerException!
}
good: |
private Service service;
public void setUp() {
MockitoAnnotations.openMocks(this); // GOOD
}
has_fix: false