آموزش عملی و پروژه محور Domain Driven Design و CQRS #7 قسمت هفتم از یک سری آموزشی از وبسایت پرووید است که در رابطه با Domain Driven Design و CQRS تنظیم شده است. پس از این دوره ی آموزشی می توانید از بسته های آموزشی وبسایت پرووید در رابطه با Domain Driven Design را استفاده کنید.

در قسمت قبلی از این آموزش در مورد پیاده سازی Domain Logic و اولین Command و Event صحبت کردیم.

نوشتن اولین تست

قبل از اینکه بتوانیم تست ها را بنویسیم باید کلاسی را برای Aggregate خود تعریف کنیم. در ادامه تعریف کلاس TabAggregate را مشاهده می کنید.

public class TabAggregate : Aggregate
{
}

همانطور که میبینید این کلاس از کلاس Aggregate ارثدبری کرده است. کلاس Aggregate در بردارنده یک Id و مقداری کد در رابطه با Event های مربوط به Aggregate می باشد.

بسته ی آموزش کاربردی طراحی نرم افزار Domain Driven Design

از شما دعوت می کنیم از بسته ی آموزش کاربردی طراحی نرم افزار Domain Driven Design دیدن کنید.

در این لحظه می توانیم اولین Test Class خود را ساخته و اولین تست خود را در درون آن قرار بدهیم.

[TestFixture]
public class TabTests  : BDDTest<TabAggregate>
{
    private Guid testId;
    private int testTable;
    private string testWaiter;

    [SetUp]
    public void Setup()
    {
        testId = Guid.NewGuid();
        testTable = 42;
        testWaiter = "Derek";
    }

    [Test]
    public void CanOpenANewTab()
    {
        Test(
            Given(),
            When(new OpenTab
            {
                Id = testId,
                TableNumber = testTable,
                Waiter = testWaiter
            }),
            Then(new TabOpened
            {
                Id = testId,
                TableNumber = testTable,
                Waiter = testWaiter
            }));
    }
}

تستی که در قسمت بالا قرار داده شده است می گوید که به شرطی که تاریخچه ‌ی Event ی برای یک تب وجود نداشته باشد زمانی که کامند OpenTab صادر شد ما انتظار داریم که TabOpened تولید شود.

بسته ی آموزش اصول طراحی نرم افزار Domain Driven Design

از شما دعوت می کنیم از بسته ی آموزش اصول طراحی نرم افزار Domain Driven Design دیدن کنید.

در حال حاضر Solution ما حاوی مواردی است که در تصویر زیر مشاهده می کنید:

در قسمت بعدی از این آموزش در مورد اجرای تست و Fail شدن آن صحبت خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *