centreon/centreon-test-lib

用于Behat测试和PHPUnit测试的库


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();
}