Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/lsampaioweb/ai-instructions/spring-boot-testgit clone --depth 1 https://github.com/lsampaioweb/ai-instructionsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/lsampaioweb/ai-instructions/spring-boot-test)<a href="https://agentmods.dev/rules/lsampaioweb/ai-instructions/spring-boot-test"><img src="https://agentmods.dev/badge/rules/lsampaioweb/ai-instructions/spring-boot-test.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.01192 |
| Opus 5 | $0.00000 | $0.00596 |
| Sonnet 5 | $0.00000 | $0.00238 |
| Haiku 4.5 | $0.00000 | $0.00119 |
Grade A, and why
spring-boot-test scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 60 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Spring Boot Test Engine
Naming Conventions
- Name test methods using the pattern
<operation>_when<Condition>_should<ExpectedResult>(e.g.,transfer_whenSufficientBalance_shouldTransferSuccessfully).
Rules
- Use
spring-boot-java-style.mdcas the cross-cutting baseline for repeated string-literal extraction in test classes. - Use layer-appropriate test slices:
@WebMvcTest(ControllerClass.class)for HTTP contract tests,@JdbcTestfor repository tests,@ExtendWith(MockitoExtension.class)for unit tests,@SpringBootTestfor full integration tests. - Prefer narrow test slices (
@WebMvcTest,@JdbcTest) over@SpringBootTestfor single-layer tests. - Import
@WebMvcTestfromorg.springframework.boot.webmvc.test.autoconfigure.WebMvcTest(modulespring-boot-webmvc-test). - Import
@JdbcTestfromorg.springframework.boot.jdbc.test.autoconfigure.JdbcTest(modulespring-boot-jdbc-test). - Import
@MockitoBeanfromorg.springframework.test.context.bean.override.mockito.MockitoBean. - Use Spring Boot 4.x test import paths only.
- Do not import
@MockBeanor annotations fromorg.springframework.boot.test.mock.mockito/org.springframework.boot.test.autoconfigure.web.servlet. - Use
MockMvcTester(fromorg.springframework.test.web.servlet.assertj.MockMvcTester) for AssertJ-native controller assertions in@WebMvcTestslices. - Use
RestTestClient(fromorg.springframework.test.web.servlet.client.RestTestClient, modulespring-boot-resttestclient) for testing REST endpoints against a running server in@SpringBootTest(webEnvironment = RANDOM_PORT)tests. - For
@WebMvcTestclasses that serialize JSON fixtures, explicitly enable JSON auto-configuration in the test slice before autowiringObjectMapper. - For
@WebMvcTest, serialize request and response fixtures using the slice-configuredObjectMapper(orJacksonTester). - Handcraft JSON strings only for intentionally malformed-payload tests.
- For
@WebMvcTestclasses that invoke controller methods withPageableparameters, enable Spring Data web argument-resolver auto-configuration with@ImportAutoConfiguration(SpringDataWebAutoConfiguration.class). - Confirm
PageableHandlerMethodArgumentResolveris active in those@WebMvcTestclasses. - Execute at least one request that includes
page,size, andsortquery parameters in those@WebMvcTestclasses. - When a controller under test depends on a
*LogMessagescomponent in@WebMvcTest, declare a matching@MockitoBeanfor that concrete*LogMessagestype. - If tests fail because the required SGBD runtime is unavailable, classify the failure as an environment blocker, skip only the database-coupled test scope, continue non-database tests, and report the concrete failure signal.
- Keep database-coupled tests enabled when the required SGBD runtime is healthy and reachable.
- When
@JdbcTestrequires a custom repository implementation, explicitly@Import({RepositoryImpl.class, JdbcConfig.class})and ensureJdbcClientis a@Bean. - Declare
@Configurationclasses imported via@Importaspublicwhen required by the test slice; this overrides architecture package-private for that class only. - Place imported
@Configurationclasses in a scannable package. - For security-chain tests with
@SpringBootTest, manually configure MockMvc withwebAppContextSetup(context).apply(springSecurity()).build(). - Use static imports from
org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurersandorg.springframework.test.web.servlet.setup.MockMvcBuilders. - Apply
@Transactionalto database-touching integration tests for rollback isolation. - Use builder methods or dedicated factory methods for test data construction.
- Use
java.time.Monthenum constants for static date fixtures inLocalDate.ofcalls. - Keep service tests focused on business rules and edge cases.
- Keep response-structure assertions explicit for API tests.
- Assert success and failure paths for each changed behavior.
- Write at minimum one happy-path test and one failure-path test for each public service method and each REST controller endpoint.
- Add governance tests when architecture invariants require enforcement.
- Use AssertJ (
assertThat(...)) for all test assertions. - Remove unused
@MockitoBeanstubs. - Run tests under
developmentorproduction; no dedicated test profile exists. - Use inline
@Beanmethods or environment variable overrides in test classes instead of a dedicated test profile file. - Add
@AutoConfigureTestDatabase(replace=NONE)only when explicitly targeting a real external datasource.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 60 lines · 0 tokens per session scan A 8e07de868df3
spring-boot-test is a cursor rule published in the GitHub repository lsampaioweb/ai-instructions (1 stars, last pushed 10d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,192 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
cli-error-handling
CLI command error handling patterns.
prefer-direct-imports-over-module-mocks
Prefer extracting a testable core over vi.mock / vi.resetModules when unit tests need to reach production logic entangled with config, env, or singletons.
control-plane-descriptors
Control plane descriptor and instance implementation patterns.
family-instance-domain-actions
Family instance domain action implementation patterns.