Theme / v4.19.4

Oh My OpenAgent

AI 代理編排系統

Skills

Athena 品質驗收與測試撰寫技能

介紹 Athena 代理如何依據 OpenSpec 驗收標準,自動為程式碼配齊單元測試與集成測試,保障代碼品質

技能用途

在高節奏的重構任務中,人工編寫測試非常耗時。但如果缺少測試防線,代碼一旦重寫就極易引入退化 Bug。

Athena 是 OMO 內置的 品質保證與自動測試技能。它專門用於解讀 OpenSpec 的 spec.md 中的驗收 Scenarios,自動為業務代碼(如控制器、API 服務)撰寫對應的 xUnit 或 Jest 單元測試,並使用 Mock 框架模擬外部相依性,確保業務邏輯的 100% 正確性。


運作原理

  1. 規格解讀:讀取當前 Change 的 spec.md,提取出所有的 #### Scenario: 驗收條件。
  2. 測試用例生成:使用 Given-When-Then 語意,自動寫出 Mock 物件與斷言(Assertions)。
  3. 測試與覆蓋率驗證:在背景執行測試跑跑,分析覆蓋率(Coverage),若未達標則自動進行增量測試補全。

實戰對話範例

範例:為訂單控制器補齊 Integration Test

  • You:
    omo /spawn athena "為 OrderController 的 CreateAction 補齊整合測試"
  • AI:

    [OMO] Athena Engaged: Automated UAT & Testing

    正在讀取 spec.md 中的驗收條件:「當發送 POST 請求至 /api/orders 時,必須返回 OperationResult」。

    Athena 呼叫: get_code_snippet(qualifiedName: "OrderController")

    我已在 tests/OrderControllerTests.cs 中建立了整合測試:

    [Fact]
    public async Task CreateOrder_ValidRequest_ReturnsOkResult()
    {
        var response = await _client.PostAsJsonAsync("api/orders", new CreateOrderDto { Total = 100 });
        Assert.Equal(HttpStatusCode.OK, response.StatusCode);
    }

    執行 dotnet test -> Passed! 覆蓋率達 85.4%。測試防線已安全布署。