You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+61-30Lines changed: 61 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,31 +4,62 @@
4
4
5
5
`Atc.Test` is a .NET helper library that streamlines authoring tests with xUnit v3, AutoFixture, NSubstitute, and FluentAssertions. It provides rich data attributes, automatic specimen customization, and ergonomic frozen value reuse to reduce ceremony and improve test readability.
6
6
7
+
## Why Atc.Test
8
+
9
+
> You can “just wire everything manually” with plain xUnit and hand‑rolled mocks—so why use this instead?
10
+
11
+
| Problem Without | What You Gain With `Atc.Test`| Why It Matters Over Time |
| Repeating constructor/mocker boilerplate in every test | Parameter-only intent: you list just what the test cares about | Lower cognitive load; faster review – noise removed |
14
+
| Fragile refactors (add a ctor param ⇒ touch many files) | Fixture-driven auto‑supply of new dependencies | Constructor churn becomes O(1) instead of O(N tests) |
| Accidental duplicate substitutes for logically single collaborator |`[Frozen]` exact-type reuse + early supplied promotion (member data) | Prevents subtle mismatch bugs & expectation gaps |
17
+
| Manual re-creation of “shared conventions” (recursion handling, generators) | One-time customization via `[AutoRegister]`| New test inherits standards automatically |
18
+
| AI-generated setup drifts over time | Declarative attributes act as a stable policy layer | Reduces maintenance & future prompt dependency |
19
+
20
+
### When It Delivers the Most Value
21
+
22
+
* Mid/large test suites (hundreds+ of theory cases).
23
+
* Domain services with evolving constructor graphs / dependencies.
24
+
* Teams that value refactor safety and consistent test style.
25
+
* Situations where only a few parameters per test truly matter.
26
+
27
+
### When Bare xUnit (+ manual mocks) May Be Enough
28
+
29
+
* Very small or short‑lived codebases.
30
+
* Highly bespoke object graphs where you override almost every generated value anyway.
31
+
* Educational contexts emphasizing explicit wiring for learning.
32
+
33
+
### Summary
34
+
35
+
`Atc.Test` trades a tiny amount of initial abstraction for compounding savings in refactors, readability, and consistency. AI can quickly generate boilerplate; this library’s value is eliminating the need for that boilerplate in the first place—and giving you a single, policy‑driven locus for customization and reuse.
36
+
7
37
## Table of Content
8
38
9
-
-[Introduction](#introduction)
10
-
-[Table of Content](#table-of-content)
11
-
-[Features](#features)
12
-
-[Getting Started](#getting-started)
13
-
-[Install Package](#install-package)
14
-
-[Why xUnit Must Be Referenced Directly](#why-xunit-must-be-referenced-directly)
0 commit comments