centreon / centreon-test-lib
用于Behat测试和PHPUnit测试的库
Requires
- behat/behat: ^3.0
- friendsofphp/php-cs-fixer: ^3.10
- guzzlehttp/guzzle: ^7.3
- justinrainbow/json-schema: ^5.2
- league/openapi-psr7-validator: ^0.17
- nyholm/psr7: ^1.3
- pestphp/pest: ^1.9
- phpstan/phpstan: ~1.10.0
- psr/http-client: ^1.0
- symfony/console: ^6.4
- symfony/http-client: ^6.4.0
- symfony/property-access: ^6.4.0
- webmozart/assert: ^1.9
Suggests
- behat/mink: Browser controller/emulator abstraction for PHP
- behat/mink-selenium2-driver: Mink driver using Selenium
- phpstan/phpstan: PHP static analysis
- dev-master
- 24.04.x-dev
- 23.10.x-dev
- 23.04.x-dev
- 22.10.x-dev
- 22.04.x-dev
- 21.10.x-dev
- 21.04.x-dev
- 20.10.x-dev
- 19.10.x-dev
- 19.04.x-dev
- 18.10.x-dev
- 2.8.x-dev
- dev-MON-147667-upgrade-to-php-8.2
- dev-MON-147667-upgrade-to-php-8.2-with-upgrade-dependencies
- dev-upgrade-pest
- dev-template-generator
- dev-MON-92749
- dev-MON-35442-fix-datetime
- dev-container-ip
- dev-fix-behat-tests
- dev-add-broker-bulk-wait
- dev-php-81
- dev-custom-database-name
- dev-MON-12409
- dev-MON-10822
- dev-typo-regex
This package is auto-updated.
Last update: 2024-09-25 14:10:15 UTC
README
原因
Centreon Web使用验收测试来确保其软件质量。测试是通过Behat实现的,本项目包含许多Centreon项目使用的符合Behat规范的类。
使用这些类,PHP开发者可以模拟最终用户与应用程序之间的交互。层次结构应遵循以下顺序,并应更清楚地解释Centreon Test Lib的类与标准Centreon类有显著差异。
类命名
每个Centreon页面应有一个类。也就是说,一旦您浏览到Centreon的新页面,就应该使用一个新的类来操作此页面。这些类应按照页面的意图命名,而不是按照访问它们的菜单命名。例如,服务创建/编辑页面命名为ServiceConfigurationPage。在管理菜单中的备份配置页面命名为BackupConfigurationPage。
类方法
一般来说,方法应保持简短,执行尽可能少的操作。总是可以添加辅助函数来执行更重的处理,但它们应该是真正有帮助的。
构造函数
页面的构造函数必须允许用户选择他们是否希望导航到请求的页面。这样做的原因是,在直接导航到特定页面或页面已加载后实例化类(例如在其他页面中点击链接)时,应使用相同的类。
在大多数简单的情况下,导航将由单个布尔参数控制。例如,以下是BackupConfigurationPage的构造函数。
public function __construct($context, $visit = true)
当页面更具体(例如,它们应用于单个服务)时,构造函数应允许导航到页面。以下是ServiceMonitoringDetailsPage的构造函数。
public function __construct($context, $host = '', $service = '')
在任何情况下,构造函数都应使用isPageValid()检查页面有效性。如果页面无效,则应抛出异常。
isPageValid()
此方法应检查当前页面相对于类的有效性。它应返回一个布尔值,指示当前页面是否可以由此类操作。
常见接口
页面
interface Page { public function isPageValid(); }
配置页面
interface ConfigurationPage extends Page { public function getProperties(); public function setProperties($properties); public function save(); }
列表页面
interface ListingPage extends Page { public function getEntries(); }