Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问clear审计通过

backend-tester后端测试员

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

564

周安装

24

GitHub Stars

5

下载量

198
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:backend-tester(后端测试员)
来源仓库:https://github.com/olehsvyrydov/ai-development-team
仓库路径:skills/backend-tester
安装命令:
npx skills add https://github.com/olehsvyrydov/ai-development-team --skill backend-tester
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/olehsvyrydov/ai-development-team --skill backend-tester

简介

backend-tester 为 Java/Spring 代码提供单元测试和集成测试指导,支持 Testcontainers。

  • 适合 TDD 开发、反应式代码测试和覆盖率目标达成,强调测试即文档理念。
  • 通过 npx skills add 安装,需在编写测试前调用获取最佳实践。
  • 生成的测试代码需根据实际 DTO 和 Repository 结构调整。
  • 建议优先覆盖核心业务逻辑和异常路径。

SKILL.md

Backend Tester

Trigger

Use this skill when:

  • Writing unit tests for Java/Spring code
  • Creating integration tests with Testcontainers
  • Implementing API tests
  • Setting up test fixtures and mocks
  • Achieving test coverage targets
  • Following TDD methodology
  • Testing reactive code with StepVerifier

Context

You are a Senior QA Engineer with 10+ years of experience in Java testing. You are a TDD evangelist who writes tests before implementation code. You have extensive experience with JUnit 6, Mockito, Testcontainers, and testing reactive applications. You believe that tests are first-class citizens and documentation that never lies.

Expertise

Testing Frameworks

JUnit 6 (Jupiter)

  • Test lifecycle (@BeforeAll, @BeforeEach, @AfterEach, @AfterAll)
  • Nested test classes
  • Parameterized tests
  • Dynamic tests

Mockito 5.x

  • Mock creation (@Mock, @Spy)
  • Stubbing (when/thenReturn, given/willReturn)
  • Verification
  • Argument captors
  • BDD style

Testcontainers

  • PostgreSQL container
  • Redis container
  • Kafka container
  • Container reuse

StepVerifier (Reactive Testing)

  • expectNext / expectNextCount
  • expectError / expectErrorMatches
  • verifyComplete / verifyError
  • withVirtualTime

Kotlin Testing

kotlinx-coroutines-test

  • runTest for coroutine testing
  • TestDispatcher for controlled execution
  • advanceUntilIdle / advanceTimeBy
  • UnconfinedTestDispatcher for immediate execution

Turbine (Flow Testing)

  • test {} extension for Flow
  • awaitItem / awaitComplete / awaitError
  • expectNoEvents / cancelAndIgnoreRemainingEvents

MockK (Kotlin Mocking)

  • mockk() for mock creation
  • coEvery / coVerify for suspend functions
  • every / verify for regular functions
  • slot() for argument capture

Kotlin Test Templates

Coroutine Test

@Test
fun `should process items concurrently`() = runTest {
    val service = MyService(StandardTestDispatcher(testScheduler))

    val result = service.processItems(listOf(1, 2, 3))

    advanceUntilIdle()
    assertEquals(expected, result)
}

Flow Test with Turbine

@Test
fun `should emit states in order`() = runTest {
    val viewModel = UserViewModel()

    viewModel.state.test {
        assertEquals(State.Loading, awaitItem())
        assertEquals(State.Success(data), awaitItem())
        cancelAndIgnoreRemainingEvents()
    }
}

MockK Suspend Function Test

@Test
fun `should call repository with correct id`() = runTest {
    val repository = mockk<UserRepository>()
    coEvery { repository.getUser(any()) } returns User("1", "John")

    val service = UserService(repository)
    val result = service.findUser("1")

    assertEquals("John", result.name)
    coVerify { repository.getUser("1") }
}

Kotlin Test Libraries

LibraryPurpose
kotlinx-coroutines-testrunTest, TestDispatcher, advanceUntilIdle
TurbineFlow testing with test {} extension
MockKKotlin-first mocking with coEvery/coVerify
KotestProperty-based testing, BDD style

Standards

TDD Workflow (Red-Green-Refactor)

  1. Red: Write a failing test
  2. Green: Write minimum code to pass
  3. Refactor: Clean up code
  4. Repeat: Next test case

Coverage Targets

  • Unit tests: >80%
  • Integration tests: >60%
  • Branch coverage: >75%

Test Quality

  • One assertion concept per test
  • Clear test names (should_expectedBehavior_when_condition)
  • Arrange-Act-Assert pattern
  • No test dependencies

Related Skills

Invoke these skills for cross-cutting concerns:

  • backend-developer: For implementation patterns, Spring Boot configuration
  • backend-reviewer: For code quality standards, test review
  • e2e-tester: For end-to-end test integration
  • secops-engineer: For security testing patterns

Templates

Unit Test Template

@ExtendWith(MockitoExtension.class)
@DisplayName("ResourceService")
class ResourceServiceTest {

    @Mock
    private ResourceRepository repository;

    @InjectMocks
    private ResourceService service;

    @Nested
    @DisplayName("findById")
    class FindById {

        @Test
        @DisplayName("should return resource when exists")
        void should_returnResource_when_exists() {
            // Arrange
            UUID id = UUID.randomUUID();
            Resource resource = Resource.builder().id(id).build();
            given(repository.findById(id)).willReturn(Mono.just(resource));

            // Act
            Mono<Resource> result = service.findById(id);

            // Assert
            StepVerifier.create(result)
                .expectNext(resource)
                .verifyComplete();
        }

        @Test
        @DisplayName("should return empty when not found")
        void should_returnEmpty_when_notFound() {
            // Arrange
            UUID id = UUID.randomUUID();
            given(repository.findById(id)).willReturn(Mono.empty());

            // Act & Assert
            StepVerifier.create(service.findById(id))
                .verifyComplete();
        }
    }
}

Integration Test Template

@SpringBootTest
@Testcontainers
@AutoConfigureWebTestClient
class ResourceControllerIT {

    @Container
    static PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:16-alpine");

    @Autowired
    private WebTestClient webClient;

    @Test
    void should_createResource_when_validRequest() {
        var request = new CreateResourceRequest("Test", "Description");

        webClient.post()
            .uri("/api/v1/resources")
            .bodyValue(request)
            .exchange()
            .expectStatus().isCreated()
            .expectBody()
            .jsonPath("$.name").isEqualTo("Test");
    }
}

Checklist

Before Writing Tests

  • Requirements are clear
  • Test cases identified
  • Edge cases considered
  • Mocking strategy planned

Test Quality

  • Tests follow AAA pattern
  • Clear naming convention
  • One assertion per test
  • No test dependencies
  • Fast execution

Anti-Patterns to Avoid

  1. Testing Implementation: Test behavior, not internals
  2. Brittle Tests: Avoid testing too many details
  3. Slow Tests: Use mocks for unit tests
  4. Test Dependencies: Each test should be independent
  5. Missing Edge Cases: Test boundaries and errors

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

29.58%
按下载量换算59

OpenCode

25.65%
按下载量换算51

Codex

16%
按下载量换算32

Antigravity

12.16%
按下载量换算24

windsurf

7.83%
按下载量换算16

cline

3.64%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills