Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pluginagentmarketplace avatar

Java Testing

  • 785 installs
  • 40 repo stars
  • Updated January 5, 2026
  • pluginagentmarketplace/custom-plugin-java

java-testing is an agent skill version 1.0.0 that validates Java code, runs tests, applies linting, and generates structured markdown test reports for developers automating QA inside agent workflows.

About

java-testing is a pluginagentmarketplace/custom-plugin-java skill at version 1.0.0 in the testing category. The configuration enables git, linter, and formatter integrations with markdown output that can include examples, plus environment overrides for strict validation in production. Developers invoke java-testing when agents should run Java unit tests, apply lint rules, and return structured pass-fail reports instead of manual Maven or Gradle CLI babysitting. Settings expose strict_mode, auto_fix, and log_level controls for development versus production validation behavior.

  • Configurable strict_mode and auto_fix options for Java test validation
  • Environment-specific overrides for development and production
  • Built-in integrations with git, linter, and formatter
  • Markdown output with optional code examples
  • Schema-validated configuration for reliable agent usage

Java Testing by the numbers

  • 785 all-time installs (skills.sh)
  • +10 installs in the week ending Jul 26, 2026 (Skillselion tracking)
  • Ranked #559 of 2,184 Testing & QA skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Jul 26, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-testing

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs785
repo stars40
Security audit2 / 3 scanners passed
Last updatedJanuary 5, 2026
Repositorypluginagentmarketplace/custom-plugin-java

How do you automate Java test runs in agents?

Automatically validate Java code, run tests, apply linting, and generate structured test reports inside their agent workflow.

Who is it for?

Java backend developers who want agent-driven test execution, linting, and markdown QA reports with git integration enabled.

Skip if: Greenfield projects with no Java source yet that need test scaffolding rather than execution of an existing suite.

When should I use this skill?

A developer asks an agent to run Java tests, lint Java code, or produce a structured test report before merge.

What you get

Markdown test report, lint results, and validation status for the Java codebase under review.

  • Markdown test report
  • Lint validation results

By the numbers

  • Skill version 1.0.0 in testing category
  • Configuration generated 2025-12-30

Files

SKILL.mdMarkdownGitHub ↗

Java Testing Skill

Write comprehensive tests for Java applications with modern testing practices.

Overview

This skill covers Java testing with JUnit 5, Mockito, AssertJ, and integration testing with Spring Boot Test and Testcontainers. Includes TDD patterns and test coverage strategies.

When to Use This Skill

Use when you need to:

  • Write unit tests with JUnit 5
  • Create mocks with Mockito
  • Build integration tests with Testcontainers
  • Implement TDD/BDD practices
  • Improve test coverage

Topics Covered

JUnit 5

  • @Test, @Nested, @DisplayName
  • @ParameterizedTest with sources
  • Lifecycle annotations
  • Extensions and custom annotations

Mockito

  • @Mock, @InjectMocks, @Spy
  • Stubbing (when/thenReturn)
  • Verification (verify, times)
  • BDD style (given/willReturn)

AssertJ

  • Fluent assertions
  • Collection assertions
  • Exception assertions
  • Custom assertions

Integration Testing

  • @SpringBootTest slices
  • Testcontainers setup
  • MockMvc for APIs
  • Database testing

Quick Reference

// Unit Test with Mockito
@ExtendWith(MockitoExtension.class)
class UserServiceTest {

    @Mock
    private UserRepository userRepository;

    @InjectMocks
    private UserService userService;

    @Test
    @DisplayName("Should find user by ID")
    void shouldFindUserById() {
        // Given
        User user = new User(1L, "John");
        given(userRepository.findById(1L)).willReturn(Optional.of(user));

        // When
        Optional<User> result = userService.findById(1L);

        // Then
        assertThat(result)
            .isPresent()
            .hasValueSatisfying(u ->
                assertThat(u.getName()).isEqualTo("John"));
        then(userRepository).should().findById(1L);
    }
}

// Parameterized Test
@ParameterizedTest
@CsvSource({
    "valid@email.com, true",
    "invalid-email, false",
    "'', false"
})
void shouldValidateEmail(String email, boolean expected) {
    assertThat(validator.isValid(email)).isEqualTo(expected);
}

// Integration Test with Testcontainers
@Testcontainers
@SpringBootTest
class OrderRepositoryIT {

    @Container
    static PostgreSQLContainer<?> postgres =
        new PostgreSQLContainer<>("postgres:15");

    @DynamicPropertySource
    static void configure(DynamicPropertyRegistry registry) {
        registry.add("spring.datasource.url", postgres::getJdbcUrl);
        registry.add("spring.datasource.username", postgres::getUsername);
        registry.add("spring.datasource.password", postgres::getPassword);
    }

    @Autowired
    private OrderRepository repository;

    @Test
    void shouldPersistOrder() {
        Order saved = repository.save(new Order("item", 100.0));
        assertThat(saved.getId()).isNotNull();
    }
}

// API Test with MockMvc
@WebMvcTest(UserController.class)
class UserControllerTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private UserService userService;

    @Test
    void shouldReturnUser() throws Exception {
        given(userService.findById(1L))
            .willReturn(Optional.of(new User(1L, "John")));

        mockMvc.perform(get("/api/users/1"))
            .andExpect(status().isOk())
            .andExpect(jsonPath("$.name").value("John"));
    }
}

Test Data Builders

public class UserTestBuilder {
    private Long id = 1L;
    private String name = "John Doe";
    private String email = "john@example.com";
    private boolean active = true;

    public static UserTestBuilder aUser() {
        return new UserTestBuilder();
    }

    public UserTestBuilder withName(String name) {
        this.name = name;
        return this;
    }

    public UserTestBuilder inactive() {
        this.active = false;
        return this;
    }

    public User build() {
        return new User(id, name, email, active);
    }
}

// Usage
User user = aUser().withName("Jane").inactive().build();

Coverage Goals

<!-- JaCoCo configuration -->
<configuration>
    <rules>
        <rule>
            <element>BUNDLE</element>
            <limits>
                <limit>
                    <counter>LINE</counter>
                    <value>COVEREDRATIO</value>
                    <minimum>0.80</minimum>
                </limit>
            </limits>
        </rule>
    </rules>
</configuration>

Troubleshooting

Common Issues

ProblemCauseSolution
Mock not workingMissing @ExtendWithAdd MockitoExtension
NPE in testMock not initializedCheck @InjectMocks
Flaky testShared stateIsolate test data
Context failsMissing beanUse @MockBean

Debug Checklist

□ Run single test in isolation
□ Check mock setup matches invocation
□ Verify @BeforeEach setup
□ Review @Transactional boundaries
□ Check for shared mutable state

Usage

Skill("java-testing")

Related Skills

  • java-testing-advanced - Advanced patterns
  • java-spring-boot - Spring test slices

Related skills

FAQ

What outputs does java-testing produce?

java-testing produces structured markdown test reports with optional examples, alongside lint and validation results. The skill config sets output.format to markdown and can enable git, linter, and formatter integrations during the agent run.

What version is the java-testing skill?

java-testing is version 1.0.0 in the testing category per its generated configuration dated 2025-12-30. Production environments can enable strict_mode validation while development keeps relaxed checks.

Is Java Testing safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Testing & QAtestingintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.