ホームページ > バックエンド開発 > PHPチュートリアル > SyliusのアップグレードTDDウェイ:Behatの探索

SyliusのアップグレードTDDウェイ:Behatの探索

Joseph Gordon-Levitt
リリース: 2025-02-10 09:21:09
オリジナル
555 人が閲覧しました

StrayBDDでSyliusを拡張する:製品在庫管理の強化

この記事では、Syliusへの在庫追跡の追加、Behatを使用したStoryBDDテストに焦点を当てています。 以前にバックエンド機能を追加しました。次に、これらをUIに統合します

Upgrading Sylius the TDD Way: Exploring Behat

目標:製品リストに新しい「インベントリ」列を表示し、追跡されたすべてのバリアントの総在庫を表示します。

Upgrading Sylius the TDD Way: Exploring Behat

重要な概念:

    StoryBDD(動作主導型の開発): behatを使用してユーザーストーリーをテストし、在庫管理などの機能の正確な実装を確保します。
  • カスタムベハートコンテキスト:特定のテストシナリオを処理するためにシリアス内でカスタムコンテキストクラスの作成と構成。
  • データベースの統合:データベーススキーマの更新と潜在的な接続エラーのアドレス
  • UIアップデート:
  • グリッドとテンプレートを変更して、Sylius管理パネルに在庫データを正しく表示します。
  • behat:
  • を使用してStoryBDDテストの実装 Behat機能ファイル(
  • )を作成します

これを実行すると、欠落している手順が明らかになります。 カスタムコンテキストを作成します():

このコンテキストを

およびfeatures/product/managing_products/browsing_products_with_inventory.featureで構成します。 データベースのセットアップ(

@managing_inventory
Feature: Browsing products with inventory
    In order to manage my shop merchandise
    As an Administrator
    I want to be able to browse products

    Background:
        Given the store operates on a single channel in "United States"
        And the store has a product "Kubus"
        And it comes in the following variations:
            | name          | price     |
            | Kubus Banana  | .00     |
            | Kubus Carrot  | .00     |
        And there are 3 units of "Kubus Banana" variant of product "Kubus" available in the inventory
        And there are 5 units of "Kubus Carrot" variant of product "Kubus" available in the inventory
        And I am logged in as an administrator

    @ui
    Scenario: Browsing defined products with inventory
        Given the "Kubus Banana" product variant is tracked by the inventory
        And the "Kubus Carrot" product variant is tracked by the inventory
        When I want to browse products
        Then I should see that the product "Kubus" has 8 on hand quantity
ログイン後にコピー

)が必要になる場合があります。src/Sylius/Behat/Context/Ui/Admin/ManagingProductsInventoryContext.php 不足している手順を実装するには、Syliusのを使用して製品リストとアサーションと対話して、在庫列の存在とデータを検証することが含まれます。 また、Sylius Grid Configuration(

)を更新して「インベントリ」列を追加し、カスタムテンプレート()を作成して、色分けされたインジケーター(十分なストック用に緑色、低い在庫の場合は緑色、在庫、在庫切れのための赤)。
<?php
// ... (imports) ...

class ManagingProductsInventoryContext implements Context
{
    // ... (IndexPageInterface injection and methods) ...
}
ログイン後にコピー

最後に、製品バリアントフォームを拡張して、再注文レベルの変更を可能にします。これには、フォーム拡張機能(src/AppBundle/Form/Type/Extension/ProductVariantTypeExtension.php)の作成、サービスとしての構成(src/AppBundle/Resources/config/services.yml)、および関連するテンプレート(app/Resources/SyliusAdminBundle/views/ProductVariant/Tab/_details.html.twig)の更新が含まれます。

Upgrading Sylius the TDD Way: Exploring Behat

結論:

このプロセスは、高いテストカバレッジを維持しながらシリアスを拡張するための堅牢なアプローチを示しています。 StoryBDDおよびカスタムベハットコンテキストの使用により、新機能が徹底的にテストされ、既存のプラットフォームにシームレスに統合されます。 構成ファイルを変更した後、キャッシュをクリアすることを忘れないでください。

(説明されているコアコードと修正とはほとんど関係のないものであるため、頻繁に尋ねる質問セクションは簡潔に省略されています。

以上がSyliusのアップグレードTDDウェイ:Behatの探索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート