Móc nối quá trình kiểm thử và các sự kiện

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát triển phần mềm hướng hành vi ứng dụng công cụ behat 001 (Trang 56 - 59)

3.2. Cách sử dụng Behat

3.2.4. Móc nối quá trình kiểm thử và các sự kiện

Quá trình thực hiện các kiểm thử tự động Behat cung cấp một loạt các sự kiện để làm việc. Các sự kiện chính trong Behat đƣợc mô tả theo Hình 3-4[8].

 Đầu tiên Behat đọc tất cả các tính năng đã đƣợc viết trong các tập tin .feature đặt trong thƣ mục features.

 Sau khi đọc tính năng, Behat sẽ phân tích các tính năng theo ngôn ngữ Gherkin đƣa ra các cây cú pháp trừu tƣợng cho các tính năng đó

 Tiếp đến, Behat chuyển cây cú pháp của mỗi tính năng thành các kiểm thử tính năng.

 Các kiểm thử tính năng lấy các kịch bản của các tính năng đó để xây dựng thành các kịch bảnkiểm thử.

 Các kịch bảnkiểm thử khởi tạo một đối tƣợng ngữ cảnh trong lớp FeatureContext và thông qua đó xác định các kiểm thử bước của kịch bản hay các bước của kịch bản nền.

 Các kiểm thử bước tìm các phương thức định nghĩa bước tương ứng trong lớp FeatureContext để thực hiện chúng.

Hình 3-4. Các sự kiện Hook của Behat

Behat thực hiện cho đến khi kết thúc bước cuối cùng của kịch bản cuối cùng trong tính năng đƣa vào. Tuy nhiên việc đƣa ra kết quả trên màn hình dòng lệnh và sau đó là trả ra các kết quả thống kê việc kiểm thử các bước, các kịch bản và tính năng đó phải nhờ vào các sự kiện. Tại mỗi điểm thực hiện, các kiểm thử khởi tạo các đối tƣợng đặc biệt gọi là các sự kiện và gửi thông tin đến đối tƣợng EventDispatcher. Một tập các đối tƣợng khác gọi là Listeners sẽđăng ký nhận thông tin thông qua EventDispatcher, EventDispatcher sẽ tự động nhận các thông báo của các sự kiện để chuyển cho các Listenersđã đăng ký xử lý (Hình 3-4. Các sự kiện Hook của Behat).

3.2.4.2. Hooks

Behat cung cấp tám loại sự kiện để móc nối

 Sự kiện BeforeSuite: Xảy ra trước khi các tính năng trong dãy thực hiện.

Sự kiện này có thể đƣợc sử dụng để thiết lập hệ thống đang kiểm thử. Sự kiện này đi kèm với một đối tƣợng của lớp Behat\Behat\Event\SuiteEvent.

 Sự kiện AfterSuitexảy ra sau khi tất cả các tính năng trong dãy thực hiện.

Sự kiện này được sử dụng đểin các thống kê, nó thường đi kèm với một thể hiện của lớp Behat\Behat\Event\SuiteEvent.

 Sự kiện BeforeFeaturexảy ra trước khi một tính năng được thực hiện. Sự kiện nàyđi kèm một thể hiện của lớp Behat\Behat\Event\FeatureEvent.

 Sự kiệnAfterFeaturexảy ra sau khi Behat thực hiện xong một tính năng.Sự kiện này đi kèm với một thể hiện của lớp Behat\Behat\Event\FeatureEvent.

 Sự kiện BeforeScenario xảy ra trước khi một kịch bản cụ thể được thực hiện. Sự kiện này đi kèm với một thể hiện của lớp Behat\Behat\EventScenarioEvent.

 Sự kiện AfterScenario xảy ra sau khi Behat thực hiện xong một kịch bản.

Sự kiện này đi kèm với một thể hiện của lớp Behat\Behat\Event\ScenarioEvent.

 Sự kiện BeforeStepxảy ra trước khi một bước cụ thể được thực hiện. Sự kiện này đi kèm với một thể hiện của lớp Behat\Behat\Event\StepEvent.

 Sự kiện AfterStepxảy ra sau khi Behat thực hiện xong một bước. Sự kiện này đi kèm với một thể hiện của lớp Behat\Behat\Event\StepEvent.

3.2.5. Kiểm thử các tính năng – lớp FeatureContext

Lớp FeatureContext hay còn gọi là lớp ngữ cảnh là lớp được sử dụng để đi ̣nh nghĩa các phương thức kiểm thử bằng ngôn ngữ PHP tương ứng với các đi ̣nh nghĩa bước trong từng kịch bản. Từ tâ ̣p tính năng, Behat sẽ tự động sinh ra các phương thức kiểm thử tương ứng với mỗi bước. Tất cả các định nghĩa bước cũng nhƣ các sự kiện cần thiết cho việc kiểm thử hành vi của dự án phần mềm đều nằm trong lớp FeatureContext.

Để Behat có thể sử dụng đƣợc lớp ngữ cảnh, có ba nguyên tắc cơ bản sau:

1. Lớp ngữ cảnh nên cài đặt theo lớp ContextInterface hoặc kế thừa lớp BehatContext trong thƣ mục Behat\Behat\Context\

2.Lớp ngữ cảnh thường được đặt tên là FeatureContext, đúng theo quy ước của Behat.

3. Khi làm việc Behat sẽ tự động tìm và gọi các tập tin .php trong thƣ mục features/bootstrap, do đó lớp ngữ cảnh nên được lưu trong thư mục này.

Lớp ngữ cảnh thường được Behat tự động sinh ra khi người lập trình gọi lệnh lệnh behat -- init, lớp này chứa trong tập tin FeatureContext.php và khi thực hiện chức năng kiểm thử, theo mặc định Behat sẽ gọi tập tin này. Tuy nhiên

người phát triển có thể đặt tên tập tin hoặc chọn đường dẫn lưu lớp ngữ cảnh ở một nơi khác, lúc đó lập trình viên cần thay đổi một số tham số trong tập tin cấu hình behat.yml (mục3.5).

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát triển phần mềm hướng hành vi ứng dụng công cụ behat 001 (Trang 56 - 59)

Tải bản đầy đủ (PDF)

(112 trang)