本文适用于对 php 和 laravel 框架有一定了解并已经看完laravel入门视频:laravel 5 fundamentals 的初学者。本文内容主要讲解如何使用单元化测试工具测试应用。
相关视频 laravel test 已经下载到网盘如果还没看请先下载观看:
1.在 tests 目录下,新建测试文件 OrderTest.php 。
<?php use App\Product;use App\Order; class ProductTest extends PHPUnit_Framework_TestCase { /** @test */ function an_order_consists_of_products() { $order = new Order; $product = new Product('Fallout4',59); $product2 = new Product('Pillowcase',7); $order->add($product); $order->add($product2); $this->assertEquals(2,count($order->products())); } } 在 App 目录下创建 Order.php 文件
立即学习“PHP免费学习笔记(深入)”;
<?php namespace App; class Order{ protected $products = []; public function add(Product $product) { $this->products[] = $product; } public function products() { return $this->products; }} 优化最后一行代码使用 assertCount() 方法。
<?php use App\Product;use App\Order; class ProductTest extends PHPUnit_Framework_TestCase { /** @test */ function an_order_consists_of_products() { $order = new Order; $product = new Product('Fallout4',59); $product2 = new Product('Pillowcase',7); $order->add($product); $order->add($product2); $this->assertCount(2,$order->products()); } } 输入命令: phpunit tests/unit 测试
2.测试订单总额。
输入命令: phpunit --filter an_order_can_determine_the_total_cost_of_all_its_products只测试一个方法
<?php use App\Product;use App\Order; class ProductTest extends PHPUnit_Framework_TestCase { /** @test */ function an_order_consists_of_products() { $order = new Order; $product = new Product('Fallout4',59); $product2 = new Product('Pillowcase',7); $order->add($product); $order->add($product2); $this->assertCount(2,$order->products()); } /** @test */ function an_order_can_determine_the_total_cost_of_all_its_products() { $order = new Order; $product = new Product('Fallout4',59); $product2 = new Product('Pillowcase',7); $order->add($product); $order->add($product2); $this->assertEquals(66,$order->total()); }} 测试文件 Order.php
<?php namespace App; class Order{ protected $products = []; public function add(Product $product) { $this->products[] = $product; } public function products() { return $this->products; } public function total() { total = 0; foreach($this->productsas $product){ $total += $product->cost(); } return $total; }}
通过测试
使用 createOrderWithProducts() 方法简化代码。
<?php use App\Product;use App\Order; class ProductTest extends PHPUnit_Framework_TestCase { /** @test */ function an_order_consists_of_products() { $order = $this->createOrderWithProducts(); $this->assertCount(2,$order->products()); } /** @test */ function an_order_can_determine_the_total_cost_of_all_its_products() { $order = $this->createOrderWithProducts(); $this->assertEquals(66,$order->total()); } protected function createOrderWithProducts() { $order = new Order; $product = new Product('Fallout4',59); $product2 = new Product('Pillowcase',7); $order->add($product); $order->add($product2); return $order; }} 本篇稍微深入的测试了一下 Order 类,后续继续作详尽阐述。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号