webarchitect609/bitrix-taxidermist

用于单元测试的Bitrix类模拟。

0.2.0 2023-02-24 12:26 UTC

This package is auto-updated.

Last update: 2024-09-24 16:09:35 UTC


README

Travis Build Status codecov PHP version Latest version Downloads License

请注意:这目前还是一个不稳定的alpha版本!

为了开发依赖Bitrix的库的单元测试,需要安装Bitrix。然而,安装过程是耗时的,需要通过浏览器中的可视化界面控制,并且很难自动化。这个库提供了不安装Bitrix即可自动创建Bitrix类模拟的功能。同时解决了在IDE开发时出现的“存在对类'%bitrixClassName%'的多个定义”的问题。

功能

  • 自动创建用于单元测试的Bitrix模拟类

安装

composer require --dev webarchitect609/bitrix-taxidermist

使用

单元测试

在编写单元测试时,在重写方法 \PHPUnit\Framework\TestCase::setUp()\PHPUnit\Framework\TestCase::setUpBeforeClass() 时应启动所有类的模拟制作。

use WebArch\BitrixTaxidermist\Taxidermist;

(new Taxidermist)->taxidermizeAll();

将自动创建别名。例如,

/** @noinspection ALL */
class_alias('\WebArch\BitrixTaxidermist\Mock\Bitrix\Main\Data\Cache', '\Bitrix\Main\Data\Cache');

,这样单元测试就可以像使用已安装的Bitrix一样使用这些类。

代码静态分析

应将文件 ~/resources/autoload-dist.php 指定为额外的自动加载文件。

已知问题

调用 \Bitrix\Main\Application::getInstance() 时出错

如果需要使用 \Bitrix\Main\Application::getInstance(),它将引发错误

Error: Cannot instantiate abstract class WebArch\BitrixTaxidermist\Mock\Bitrix\Main\Application

为了避免这种情况,应创建所需的应用程序对象。例如,这样

use WebArch\BitrixTaxidermist\Mock\Bitrix\Main\HttpApplication;

HttpApplication::getInstance();

许可和作者信息

BSD-3-Clause