Thông tin nhập vào không hợp lệ
Tên đăng nhập
Mật khẩu
Quên mật khẩu
Đăng ký
-101Kết kiểm thử lƣợt thứ ba scenario (1 passed) steps (9 passed) 0m0.058s Kịch bản thứ hai:Tên đăng nhập không hợp lệ @javascript Scenario: Tên đăng nhập không hợp lệ When I fill in "tendn" with "" And I press "Đăng nhập" Then the field "Tên đăng nhập" should be outlined in red Gọi lệnh behat lần thử nhất, kết là: @javascript Scenario: Tên đăng nhập không hợp lệ # features/login.feature:19 When I fill in "tendn" with "" # FeatureContext::fillField() And I press "Đăng nhập" # FeatureContext::pressButton() Then the field "Tên đăng nhập" should be outlined in red scenarios (1 passed, undefined) 13 steps (12 passed, undefined) 0m5.496s You can implement step definitions for undefined steps with these snippets: /** * @Then /^the field "([^"]*)" should be outlined in red$/ */ public function theFieldShouldBeOutlinedInRed($arg1) { throw new PendingException(); } Bổ sung định nghĩa bƣớc /** * @Then /^the field "([^"]*)" should be outlined in red$/ */ public function theFieldShouldBeOutlinedInRed($field) { $session = $this->getSession()>wait(5000,"$('#validate_msg').children().length> 0"); $page = $this->getSession()->getPage(); // get the object of the field -102$formField = $page->findField($field); if (empty($formField)) { throw new Exception('The page does not have the field with label "' $field '"'); } // get the 'class' attribute of the field $class = $formField->getAttribute("class"); $class = explode(" ", $class); // if the field has 'error' class, then the field will be outlined with red if (!in_array("error", $class)) { throw new Exception('The field "' $field '" is not outlined with red'); } Kết kiểm thử lƣợt thứ hai scenarios (1 passed, failed) 13 steps (12 passed, failed) 0m10.85s Bổ sung mã cho form đăng nhập function check_login() { var check=0; var tendn = $("#tendn").val(); if(tendn =="") { $("input#tendn").addClass("error"); check =1; } else if($("input#tendn").hasClass("error")) { $("input#tendn").removeClass("error"); } if(check==1) { $("p.validate_msg").slideDown("fast"); return false; } $("form#frm_login").submit(); } Kết kiểm thử lƣợt thứ ba scenarios (2 passed) 13 steps (13 passed) 0m10.642s Tƣơng tự ta bổ sung kịch khác cho tính đăng nhập, tính kết kiểm thử tính nhƣ sau: -103gampt@gampt-Inspiron-N4010:~/Desktop/behattest/MinkExtensionexample$ bin/behat features/login.feature Feature: Homepage In order to log in system As a visitor I want to use log in form Background: # features/login.feature:6 Given I am on homepage # FeatureContext::iAmOnHomepage() Scenario: Kiểm tra các thành phần Form login # features/login.feature:8 Then I should see text matching "ĐĂNG NHẬP" # FeatureContext::assertPageMatchesText() And I should see "Tên đăng nhập" # FeatureContext::assertPageContainsText() And I should see input "tendn" with "text" type # FeatureContext::iShouldSeeInputWithType() And I should see "Mật khẩu" # FeatureContext::assertPageContainsText() And I should see input "matkhau" with "password" type # FeatureContext::iShouldSeeInputWithType() And I should see "Đăng nhập" button # FeatureContext::iShouldSeeButton() And I should see link "Quên mật khẩu" # FeatureContext::iShouldSeeLink() And I should see link "Đăng ký" # FeatureContext::iShouldSeeLink() @javascript Scenario: Tên đăng nhập không hợp lệ features/login.feature:19 When I fill in "Tên đăng nhập" with "" FeatureContext::fillField() And I press "Đăng nhập" FeatureContext::pressButton() Then the field "Tên đăng nhập" should be outlined in red FeatureContext::theFieldShouldBeOutlinedInRed() @javascript Scenario: Mật không hợp lệ features/login.feature:25 When I fill in "Mật khẩu" with "" FeatureContext::fillField() And I press "Đăng nhập" FeatureContext::pressButton() Then the field "Mật khẩu" should be outlined in red FeatureContext::theFieldShouldBeOutlinedInRed() # # # # # # # # -104- @javascript Scenario: Đăng nhập không thành công features/login.feature:30 When I fill in "Tên đăng nhập" with random text FeatureContext::iFillInWithRandomText() When I fill in "Mật khẩu" with random text FeatureContext::iFillInWithRandomText() And I press "Đăng nhập" FeatureContext::pressButton() Then I should see "Tên đăng nhập/Mật không hợp lệ" FeatureContext::assertPageContainsText() @javascript Scenario: Đăng nhập thành công features/login.feature:36 When I fill in the following: FeatureContext::fillFields() | Tên đăng nhập | admin | | Mật | 123456 | And I press "Đăng nhập" FeatureContext::pressButton() Then I should be on homepage FeatureContext::iShouldBeOnHomepage() And I should see "Hi, admin" FeatureContext::assertPageContainsText() And I should see the link "Đăng xuất" in the "right" FeatureContext::assertLinkRegion() scenarios (5 passed) 28 steps (28 passed) 0m18.746s # # # # # # # # # # #