gealex/doublit

Doublit : 一个用于测试 PHP 类依赖关系的简单工具

v2.1.5 2019-06-04 10:44 UTC

This package is auto-updated.

Last update: 2024-09-04 21:52:11 UTC


README

Build Status

Doublit 可以帮助您通过生成类似原始类的双胞胎来测试您的 PHP 类(类似于类的副本)。然后可以使用这些双胞胎代替原始类进行测试。Doublit 可以创建任何类型的类的双胞胎,包括类、接口或特质。

请参阅完整文档 https://getdoublit.com

安装

在您的 composer.json 文件的 "require-dev" 部分中添加以下行 "gealex/doublit": "~2.1.0"

{
    "require-dev": {
        "gealex/doublit": "~2.1.0"
    }
}

并运行以下命令

$ composer update

这将安装 Doublit 的最新版本以及所需的 PhpUnit 包。

创建一个双胞胎

当原始类的所有方法都被重写为返回 null 时,双胞胎被称为 "dummy"。要获取 "dummy" 双胞胎实例,请使用 dummy 方法

```php
// Get a double instance of type "dummy" for class "MyClass"
$my_double = Doublit::dummy(MyClass::class)->getInstance();
```

当原始类的所有方法都被重写为在原始类中表现相同的行为时,双胞胎被称为 "mock"。要获取 "mock" 双胞胎实例,请使用 mock 方法

```php
// Get a double instance of type "mock" for class "MyClass"
$my_double = Doublit::mock(MyClass::class)->getInstance();
```

更多详情: 阅读关于创建双胞胎的文档

测试一个双胞胎

要测试双胞胎方法被调用的次数,请使用 count 方法

```php
// Test that the method "myMethod" is called a least one time
$double::_method('myMethod')->count('>=1');
```

要测试传递给双胞胎方法的参数的值,请使用 args 方法

```php
// Test that the arguments passed to method "myMethod" are "value1" and "value2"
$double::_method('myMethod')->args(['value1', 'value2']);
```

要更改方法的返回值,请使用 stub 方法。

```php
// Make method "myMethod" return "hello"
$my_double::_method('myMethod')->stub('hello');
```

更多详情: 阅读关于测试双胞胎的文档

配置

您可以使用 dummymock 方法的第二个参数为特定双胞胎定义配置

```php
// Get double instance with config
$my_double = Doublit::dummy(MyClass::class, [
    'allow_final_doubles' => true,
    'allow_non_existent_classes' => true
])->getInstance();
```

以下是所有可用配置参数的列表

  • allow_final_doubles : 将此参数设置为 false 以阻止 Doublit 尝试创建最终类/方法的双胞胎。
  • allow_protected_methods : 将此参数设置为 false 以禁止测试受保护的方法。
  • allow_non_existent_classes : 将此参数设置为 false 以禁止别名双胞胎不存在类的双胞胎。
  • test_unexpected_methods : 将此参数设置为 true 以自动接收一个断言错误,每当调用意外方法时。

更多详情: 阅读关于配置的文档

关于

许可证

Doublit 在 MIT 许可证 下发布。

作者

Alexandre Geiswiller - alexandre.geiswiller@gmail.com

更多详情: 阅读关于的文档