Yii-测试

在编写PHP类时,我们将逐步调试它,或者使用die或echo语句来验证其工作方式。如果我们开发Web应用程序,那么我们将以表格形式输入测试数据,以确保页面能够按预期工作。该测试过程可以自动化。

自动测试方法对长期项目有意义-

  • 复杂而大
  • 不断增长
  • 就失败的代价而言太昂贵了

如果您的项目没有变得复杂而不是相对简单,或者只是一个一次性项目,那么自动化测试可能就显得过分了。

准备测试

步骤1-安装Codeception框架。运行以下代码。

composer global require "codeception/codeception = 2.0.*"
composer global require "codeception/specify = *"
composer global require "codeception/verify = *"

步骤2-运行以下命令。

composer global status

输出为“将当前目录更改为<目录>”。您应该将“ <目录> / vendor / bin”添加到PATH变量中。在这种情况下,运行以下代码-

export PATH = $PATH:~/.composer/vendor/bin

步骤3-创建一个名为‘yii2_basic_tests’的新数据库。

步骤4-在测试目录内运行。

codeception/bin/yii migrate

可以在tests / codeception / config / config.php上找到数据库配置。

步骤5-通过构建测试套件。

codecept build

治具

固定装置的主要目的是将环境设置为未知状态,以便您的测试以预期的方式运行。Yii提供了一个近乎固定的框架。Yii夹具框架的关键概念是夹具对象。它代表测试环境的特定方面。夹具对象是yii \ test \ Fixture类的实例。

要定义一个灯具,您应该创建一个新类并从yii \ test \ Fixture或yii \ test \ ActiveFixture扩展它。前者更适合于通用夹具,而后者则专门设计用于数据库和ActiveRecord。

单元测试

单元测试可帮助您测试各个功能。例如,模型函数或组件类。

步骤1-tests / codeception / fixtures目录下名为ExampleFixture.php的文件中创建一个新的fixture 。

<?php
   namespace app\tests\codeception\fixtures;
   use yii\test\ActiveFixture;
   class ExampleFixture extends ActiveFixture {
      public $modelClass = ‘app⊨’MyUser';
   }
?>

步骤2-然后,在tests / codeception / unit / models文件夹中创建一个名为ExampleTest.php的新测试文件。

<?php
   namespace tests\codeception\unit\models;
   use app\models\MyUser;
   use yii\codeception\TestCase;
   class ExampleTest extends TestCase {
      public function testCreateMyUser() {
         $m = new MyUser();
         $m->name = "myuser";
         $m->email = "myser@email.com";
         $this->assertTrue($m->save());
      }
      public function testUpdateMyUser() {
         $m = new MyUser();
         $m->name = "myuser2";
         $m->email = "myser2@email.com";
         $this->assertTrue($m->save());
         $this->assertEquals("myuser2", $m->name);
      }
      public function testDeleteMyUser() {
         $m = MyUser::findOne(['name' => 'myuser2']);
         $this->assertNotNull($m);
         MyUser::deleteAll(['name' => $m->name]);
         $m = MyUser::findOne(['name' => 'myuser2']);
         $this->assertNull($m);
      }
   }
?>

在上面的代码中,我们定义了三个测试-

  • testCreateMyUser,
  • testUpdateMyUser,和
  • testDeleteMyUser。

我们刚刚创建了一个新用户,更新了他的名字,然后尝试删除他。我们根据yii2_basic_tests数据库管理MyUser模型,该数据库是真实数据库的完整副本。

步骤3-要开始测试,请移至tests文件夹并运行。

codecept run unit models/ExampleTest

它应该通过所有测试。您将看到以下内容:

Yii-测试

功能测试

功能测试可以帮助您-

  • 使用浏览器模拟器测试应用程序
  • 验证功能是否正常工作
  • 与数据库交互
  • 将数据提交到服务器端脚本

在测试文件夹内运行-

generate:cept functional AboutPageCept

上面的命令在tests / codeception / functional文件夹下创建AboutPageCept.php文件。在此功能测试中,我们将检查关于页面是否存在。

步骤1-修改AboutPageCept.php文件。

<?php
   $I = new FunctionalTester($scenario);
   $I->wantTo('perform actions and see result');
   $I->amOnPage('site/about');
   $I->see('about');
   $I->dontSee('apple');
?>

在上面给出的代码中,我们检查了是否在About页面上。显然,我们应该在页面上看到“关于”这个词,而没有看到“苹果”。

步骤2-通过运行测试。

run functional AboutPageCept

您将看到以下输出:

Yii-测试

作者:terry,如若转载,请注明出处:https://www.web176.com/yii/383.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2020年10月23日 下午3:34
下一篇 2020年10月23日 下午3:41

相关推荐

发表回复

登录后才能评论
nic porn hdmovz.mobi omansex
my sexy savita tubster.net oral sex mms
sexy hollywood movies thempeg.mobi zulu reed dance bathing
صور سكس ليلى علوى wahmbahm.com نيك اسكندراني
indian outdoor xnxx hdtporno.org bollywood actress xvideo
latest xvideos whiteporntube.info sexy gand mari
سكس جد teenagesexvids.com فيلم جنسى كامل
www.desi xb.com cumshotporntrends.com www indian sex con
indian style fucking pornodon.net kamwali bai
سكس اخ ينيك اختو noodporn.com سكس امهات وصبى
3gp sex.com hindipornmovies.org namitha bf videos
سكس هواه ounoun.com افلام اغتصاب مترجمة
you tube8 pornvideox.mobi desi sex videos download
سكس بنات مع كلاب xltcf.com سكس مصري مخفي
indian mobil sex nudeindiantube.net xvideos.tamil