Tôi hiện đang tạm thời làm lại công việc của một giáo viên, vì vậy để mọi sinh viên đều có thể tham gia kiểm tra đơn vị, tôi đã phải xem qua PHPunit và cách chạy nó trên Windows
Hãy xem kho lưu trữ github của tôi cho phpunit-demo để lấy mã cho bài viết này
Cài đặt PHP5. x trên Windows
Để cài đặt PHP trên Windows, bạn chỉ cần tải xuống một trong các gói nhị phân từ trang web chính thức. Hãy nhớ chọn kiến trúc phù hợp, x86 nếu bạn đang chạy Windows 32 bit, x64 nếu bạn đang sử dụng Windows 64 bitSau khi giải nén ZIP, bạn chỉ cần di chuyển thư mục đến thư mục gốc của ổ đĩa C: của mình. Tin tôi đi, mọi thứ sẽ dễ dàng hơn khi có một đường dẫn ngắn để gõ
Cài đặt PHPunit trên Windows
Việc cài đặt PHPunit về cơ bản yêu cầu tải xuống một tệp .phar duy nhất, tệp này có thể được thực thi bằng PHP. Bạn có thể tìm thấy nó trên phần Bắt đầu PHPunit trên trang của họ hoặc chỉ cần lưu liên kết sau. https. //phar. phpunit. de/phpunit. pharViết bài kiểm tra PHPunit
Có một ví dụ phức tạp trong phần Bắt đầu PHPunit với mã OOP, nhưng tôi sẽ nhanh chóng lướt qua một ví dụ rất đơn giản bên dưới_______0_______Đối với chức năng này, tôi chỉ cần sử dụng đoạn mã sau trong tests/my_function_test.php
<?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?>Chạy thử nghiệm PHPunit trên Windows
Để chạy unit test, bạn cần mở giao diện dòng lệnh trên Windows. Bạn có thể làm điều đó một cách dễ dàng nhất bằng cách mở menu bắt đầu và nhập <?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?> 0 vào hộp tìm kiếmTrước tiên, chúng ta sẽ cần chuyển sang thư mục chứa mã, được cho là sẽ được kiểm tra và bản thân các bài kiểm tra được đặt
Nếu bạn đang làm việc với WAMP, đường dẫn của bạn có thể giống như thế này. <?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?> 1. Để đến được đường dẫn đó, chúng ta chỉ cần gõ cmd. <?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?> 2
Bây giờ chúng ta có thể bắt đầu chạy thử nghiệm của mình
C:\php5\php.exe phpunit.phar tests\my_function_test.phpNếu bạn muốn kiểm tra một lớp học, bạn không cần phải thực hiện bất kỳ ____________3 nào trong tệp kiểm tra của mình và có thể chạy một lệnh như sau
C:\php5\php.exe phpunit.phar --bootstrap my_class.php tests\my_class_test.phpVí dụ, đây là đầu ra của việc chạy <?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?> 4
phpunit-demo (master) $ php phpunit.phar tests\my_function_test.php PHPUnit 3.7.32 by Sebastian Bergmann. . Time: 83 ms, Memory: 2.50Mb OK (1 test, 1 assertion)VÂNG. Bài kiểm tra đầu tiên của chúng tôi đã vượt qua. Dễ dàng, phải không? . Bây giờ nếu chúng tôi thay đổi giá trị mà chúng tôi mong muốn nhận được nếu chúng tôi thêm 1 và 1, chúng tôi sẽ nhận được thông báo lỗi, thông báo này cho chúng tôi biết thử nghiệm nào không thành công. Điều này cực kỳ tiện lợi nếu bạn không thử nghiệm một mà là 500 chức năng
Thay đổi
$result = my_addition(1,1); - $this->assertEquals(3, $result); + $this->assertEquals(3, $result);Thông báo lỗi
PHPUnit 3.7.32 by Sebastian Bergmann. F Time: 272 ms, Memory: 2.75Mb There was 1 failure: 1) MyProceduralTest::testAddition Failed asserting that 2 matches expected 3. /home/geronimo/public_html/phpunit-demo/tests/my_function_test.php:12 FAILURES! Tests: 1, Assertions: 1, Failures: 1.Dòng có giá trị nhất có lẽ là <?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?> 5, bởi vì nó cho biết cả giá trị trả về và giá trị mà chúng tôi nghĩ mình sẽ nhận được trong bài kiểm tra
Viết bài kiểm tra PHP của riêng bạn
Để viết bài kiểm tra của riêng bạn, bạn có thể xem danh sách tất cả các xác nhận cho PHPUnit. Nó có rất nhiều hàm thực tế có thể kiểm tra <?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?> 6 hoặc <?php class MyProceduralTest extends PHPunit_Framework_Testcase { /* * Testing the addition function */ public function testAddition(){ include('my_functions.php'); // must include if tests are for non OOP code $result = my_addition(1,1); $this->assertEquals(2, $result); } } ?> 7, nếu một hàm xuất ra một số hoặc nếu một giá trị nhỏ hơn hoặc lớn hơn một giá trị khác. Tất cả các chức năng xác nhận đều đi kèm với các ví dụ hữu ích, từ đó bạn có thể xây dựng các bài kiểm tra của riêng mìnhCác chức năng có vẻ rất cơ bản, nhưng vì nó cũng hỗ trợ các biểu thức chính quy, nên bạn có thể kiểm tra nhiều chuyển đổi chuỗi điển hình cho các dự án web hoặc thoát url, xác thực đầu vào của người dùng, v.v.