模拟帮助类和函数

该软件包的规范仓库似乎已不存在,因此该软件包已被冻结。

维护者

详细信息

github.com/jaschweder/mock

v1.7.1 2016-09-27 17:24 UTC

This package is not auto-updated.

Last update: 2024-01-20 15:45:01 UTC


README

类和函数,帮助您进行测试

Build Status

安装

composer require jaschweder/mock

入门

工厂

// Create your mock container
$container = new Jaschweder\Mock\Container\ArrayContainer;

// Create a new instance of Jaschweder\Mock\Factory
$factory = new Jaschweder\Mock\Factory($container);

// or use the global factory() function
factory();

与内部类型一起使用

// Strings
$factory->register('key', 'value');
$factory->mock('key'); // 'value'

// Numbers
$factory->register('key', 123);
$factory->mock('key'); // 123

// Booleans
$factory->register('key', true);
$factory->mock('key'); // true

// Arrays
$factory->register('key', ["foo" => "bar"]);
$factory->mock('key'); // ["foo" => "bar"]

与对象一起使用

// Push User instance generator to key 'User'
$factory->register('User', function() {
    $user = new User;
    $user->setEmail('user@example.com');
    $user->setPassword('secret');
    return $user;
});

// Get new instance of class User
$user = $factory->mock('User');

// Get 3 instances of class User
$users = $factory->mock('User', 3);

您可以创建现有模拟的变体

// Register a new mock who receive has parameter a mock of 'User' instance
$factory->register('User@admin', function($user) {
    $user->isAdmin = true;
    return $user;
});

// Get new instance of class User who is admin
$admin = $factory->mock('User@admin');

Faker 一起使用

// Create a new Faker\Factory instance
$faker = Faker\Factory::create();

$factory->register('User', function() {
    $user = new User;
    $user->setEmail($faker->freeEmail);
    $user->setPassword($faker->md5);
    return $user;
});

// Get new instance of class User with random data
$user = $factory->mock('User');

模拟对象和方法

// Create a mock object
$mock = new Jaschweder\Mock\Object;
$mock->method('foo')->result('bar');
echo $mock->foo(); //'bar'

作者

Jonathan A. Schweder jonathanschweder@gmail.com