bdd-asynclisted
Install: claude install-skill hnidboubker/symphony-async
# bdd-async
Behavior-Driven Development skill for TUnit. Describes observable business behavior using Given → When → Then. TUnit is the testing framework.
## Workflow
```
Business Requirement
↓
Identify Business Behavior
↓
Given → When → Then
↓
Write TUnit Test
↓
Run Test → Implement / Fix → Run Test → PASS
```
## Step 1 — Understand the Business Requirement
Before writing code:
1. Read the requirement.
2. Identify the actor.
3. Identify the initial context.
4. Identify the business action.
5. Identify the expected result.
6. Identify important business rules.
7. Identify relevant edge cases.
8. Inspect existing tests and domain language.
Translate the requirement into a scenario.
**Example:**
```gherkin
Feature: Customer discount
Scenario: Premium customer receives a discount
Given the customer is premium
When the customer purchases an item
Then a 20% discount is applied
```
## Step 2 — Create the TUnit Test
Represent the scenario as a readable TUnit test.
```csharp
[Test]
public async Task PremiumCustomer_WhenPurchasingItem_Receives20PercentDiscount()
{
// Given
var customer = Customer.CreatePremium();
var product = new Product(100m);
// When
var total = pricingService.CalculateTotal(customer, product);
// Then
await Assert.That(total).IsEqualTo(80m);
}
```
Clearly expose Given / When / Then. Use comments when they improve readability — but not mechanically when code is already self-explanatory.
## Business Langu