# Testing Standards

> Testing conventions for Stock Indicators. Use for test naming (MethodName_StateUnderTest_ExpectedBehavior), FluentAssertions patterns, precision requirements, and test base class selection.

- Skill: `daveskender/testing-standards` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add daveskender/testing-standards`
- Raw SKILL.md: https://api.skillmd.com/api/skills/daveskender/testing-standards/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: daveskender (https://skillmd.com/u/daveskender)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/daveskender/testing-standards

---


# Testing standards

## Base class selection

| Style | Base Class |
| ----- | ---------- |
| Series | `StaticSeriesTestBase` |
| Buffer | `BufferListTestBase` |
| Stream | `StreamHubTestBase` |
| Other | `TestBase` |

## Test naming

Pattern: `MethodName_StateUnderTest_ExpectedBehavior`

## Required abstract methods

Compile errors if missing. Additional tests are developer discretion.

**Series** (`StaticSeriesTestBase`):

- `DefaultParameters_ReturnsExpectedResults()`
- `BadBars_DoesNotFail()`
- `NoBars_ReturnsEmpty()`

**Buffer** (`BufferListTestBase`):

- `PruneList_OverMaxListSize_AutoAdjustsListAndBuffers()`
- `Clear_WithState_ResetsState()`
- Plus interface methods from `ITestBarBufferList` or `ITestChainBufferList` (see [patterns reference](references/patterns.md))

**Stream** (`StreamHubTestBase`):

- `ToStringOverride_ReturnsExpectedName()`
- Plus interface methods from `ITestBarObserver`, `ITestChainObserver`, and/or `ITestChainProvider` (see [patterns reference](references/patterns.md))

## Test data

`Data.GetDefault()` — 502 bars. Use consistently across all tests.

See [references/patterns.md](references/patterns.md) for FluentAssertions patterns, precision constants, and full BufferList/StreamHub interface method lists.

