luyadev / luya-testsuite
LUYA模块和组件的测试用例和数据。让测试更轻松。
3.1.4
2023-08-31 12:19 UTC
Requires
- curl/curl: *
- twig/twig: ^3.0
- yoast/phpunit-polyfills: ^0.2.0
Requires (Dev)
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- dev-master / 3.0.x-dev
- 3.0.2
- 3.0.1
- 3.0.0
- 2.1.0
- 2.0.x-dev
- 2.0.0
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.x-dev
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25.2
- 1.0.25.1
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20.2
- 1.0.20.1
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17.2
- 1.0.17.1
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13.3
- 1.0.13.2
- 1.0.13.1
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2024-08-30 01:14:09 UTC
README
提供PHPUnit测试用例和内置Web服务器以测试您的应用程序、模块、组件、API或类。
包含什么?
测试用例
- Web应用程序测试用例
- 控制台应用程序测试用例
- 服务器(用于API)测试用例
- CMS块测试用例
- NgRest测试用例(用于模型、控制器和API)
特性
- 消息文件比较特性
- 迁移文件检查特性
固定值
- ActiveRecord固定值在加载时根据数组或规则定义创建表。
查看完整文档
安装
将luyadev/luya-testsuite
包添加到您的composer.json文件的require-dev部分
composer require luyadev/luya-testsuite --dev
在您的应用程序文件夹内创建一个新的文件夹tests
并创建测试类
namespace app\tests; use Yii; class MyTest extends \luya\testsuite\cases\WebApplicationTestCase { public function getConfigArray() { return [ 'id' => 'mytestapp', 'basePath' => dirname(__DIR__), ]; } public function testInstance() { // add your phpunit tests here, like: $this->assertInstanceOf('luya\web\Application', Yii::$app); $this->assertInstanceOf('luya\base\Boot', $this->boot); $this->assertInstanceOf('luya\web\Application', $this->app); } }
要运行单元测试(假设您的测试在tests/
目录中),在终端中运行
./vendor/bin/phpunit tests/
为了支持sqlite固定值安装
sudo apt-get install php-sqlite3
示例测试用例
一些示例,说明如何在不同场景下使用LUYA测试套件。
测试API和应用程序
当与API或客户网站一起工作时,有时您只想测试网站本身,响应是什么,我的更新后所有页面是否仍然正常工作?因此我们有luya\testsuite\cases\ServerTestCase
。
此示例将在PHP Web服务器中运行您的LUYA应用程序并测试一组给定页面的响应状态码或内容。要运行此示例,在tests
文件夹中创建一个MyWebsiteTest.php
文件。
namespace app\tests; class MyWebsiteTest extends ServerTestCase { public function getConfigArray() { return [ 'id' => 'mytestapp', 'basePath' => dirname(__DIR__), ]; } public function testSites() { $this->assertUrlHomepageIsOk(); // checks the root url like: http://localhost/mywebsite.com $this->assertUrlIsOk('about'); // checks: http://localhost/mywebsite.com/about $this->assertUrlGetResponseContains('about/me', 'Hello World'); // checks: http://localhost/mywebsite.com/about/me $this->assertUrlIsError('errorpage'); // checks: http://localhost/mywebsite.com/errorpage } }
由于Web服务器进程可能运行在不同的权限级别,您必须确保assets/runtime文件夹具有所需的权限。
控制器函数测试
我们使用如PHPUnit中所示的多处示例中的getMockBuilder()
来设置DefaultController并断言注册的模块addressbook
。为了测试由数据库错误引起的运行时异常,我们使用模拟的method
函数
public function testActionIndex() { $module = Yii::$app->getModule('addressbook'); $this->assertInstanceOf('luya\addressbook\frontend\Module', $module); $mock = $this->getMockBuilder(DefaultController::class) ->setConstructorArgs(["id" => "default", "module" => $module]) ->getMock(); $mock->method("actionIndex"); }