در این قسمت در ارتباط با مقید سازی گامها در SpecFlow با مدل Regular expressions صحبت خواهیم کرد. همان طور که پیشتر عنوان شد با استفاده از مقیدسازی(Binding) گامها، بین سناریوها به زبان آزاد و متدهای .NET به عنوان گامهای تست ارتباط برقرار میشود. برای این منظور در SpecFlow سه مدل Regular expressions in attributes ، Method names-underscores و Method names- pascal case تعریف شده است.
در اینجا برای سناریوی تعریف شده در قسمت سوم آموزش، مقیدسازی گام را انجام میدهیم. برای این منظور با کلیک راست بر روی سناریو، گزینه Generate Step Definition را انتخاب نمایید. همان طور که در تصویر ۱۰ مشاهده میشود، مراحل سناریو با نام Feature تولید میشوند که در انتهای نام Feature، عنوان Steps اضافه شده است. با مدل Regular expression مقیدسازی را تولید کنید.
برای تشخیص پارامترها از تعریف گامها در سناریوها، مدلهای مقیدسازی از روشهای گوناگونی استفاده میکنند. مثلا در روش استفاده از عبارات منظم، پارامترها بین علامت ‘’ قرار میگیرند و یا اعداد تعریف شده در گام سناریو، به عنوان پارامتر در نظر گرفته میشوند. تصویر ۱۱، فایل تولید شده از مراحل سناریو را نمایش میدهد. همان طور که مشاهده میکنید در روش Regular expression، هر گام سناریو در ادامه عبارات [Given][When][Then] نوشته شده است. هم چنین تنها در گام آخر سناریو که عدد ۸ وجود دارد یک پارامتر ورودی برای متد در نظر گرفته شده است. چنانچه با تغییر نظر مشتری از اعتبارسنجی ۸ رقمی به ۹ رقمی مواجه شویم، با تغییر تعریف گام سناریو از ۸ به ۹، پارامتر موجود در متد به مقدار جدید بروز رسانی میگردد.
برای درک بهتر گامهای تولید شده به این روش، بهتر است تا درک خوبی از Regular expression داشته باشید. بخش (.*) که در تصویر ۱۱ مشخص شده است، بیانگر آن است که هر عددی در تعریف گام سناریو میتواند جایگزین عدد ۸ بشود و محدودیتی برای این پارامتر وجود ندارد.
چنانچه در نظر داشته باشید تا ایمیل وارد شده در بخش نام کاربری را به صورت پارامتری درج کنید و مقادیر متفاوت دلخواه خود را هنگام اجرای سناریو در این بخش وارد نمایید(بدون نیاز به استفاده از جدول داده به طور دلخواه)، کافیست از علامت ‘’ استفاده نمایید. برای این منظور تصویر ۱۲ را مشاهده نمایید. همان طور که دیده میشود با تغییر تعریف گام سناریو، آن گام مجددا به رنگ بنفش در میآید. بدین معنی که مرحله معادلی در مقیدسازی برای آن وجود ندارد.
فایل مراحل تولید شده را پاک نمایید مجددا مقیدسازی گام را انجام دهید. به این ترتیب همان طور که در تصویر ۱۳ مشاهده مینمایید، نام کاربری به شکل یک پارامتر درآمده و در ورودی متد به صورت پارامتر دریافت میگردد.
در قسمت بعد آموزش، دیگر مدلهای مقیدسازی گام را ارائه میدهیم.
این آموزش به سفارش تیستن و به قلم سرکار خانم مهندس سیده مهسا میری آماده گردیده، و واحد آموزش تیستن نیز آنرا منتشر کرده است.
تمام قسمتهای آموزش Specflow، به صورت دستهبندی شده از اینجا در دسترس است.