定制 cirrusidentity/simplesamlphp-test-utils 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

cirrusidentity/simplesamlphp-test-utils

最新稳定版本:v1.18.1

Composer 安装命令:

composer require cirrusidentity/simplesamlphp-test-utils

包简介

Utilities to aid in testing simpleSAMLphp modules

关键字:

README 文档

README

Build Status

simplesamlphp-test-utils

Utilities to aid in testing SimpleSAMLphp modules

Installation

Install as a dev dependency using composer

composer require --dev  cirrusidentity/simplesamlphp-test-utils:dev-master

Update the dependency

composer update -dev  cirrusidentity/simplesamlphp-test-utils

Usage

This project makes heavy use of AspectMock to make SSP's internal easier to test. Adjust your phpunit bootstrap.php per https://github.com/Codeception/AspectMock to setup AspectMock and also ensure you set backupGlobals="false" in phpunit.xml. See this projects boostrap.php on some workarounds for getting AspectMock to play nicely with SSP's custom class loader

You can sanity check your project by calling SanityChecker::confirmAspectMockConfigured() in a test. See AspectMockConfiguredTest for an example.

Clearing Static State

You should reset AspectMock after each test.

use AspectMock\Test as test;
...
    protected function tearDown() {
        test::clean(); // remove all registered test doubles
    }

Several SSP components also cache things across all tests. Some of these classes are marked with the \SimpleSAML\Utils\ClearableState interface and you can clear this state at the appropriate time for your tests.

Mock Redirects

Your module may need to redirect the user somewhere. If you try to create a unit test for a redirect you'll normally have trouble since SSP's redirect method eventually calls exit You can use MockHttp (which internally uses AspectMock) to change the behavior of the redirect method to throw an exception instead. You can then catch the exception and asserted the correct URL was being redirect to

        // Enable throwing an exception when redirects would normally be called.
        MockHttp::throwOnRedirectTrustedURL();
        $params = [
            'state' => '1234'
        ];
        try {
            HTTP::redirectTrustedURL('http://my.url.com', $params);
            $this->fail('Exception expected');
        } catch (RedirectException $e) {
            $this->assertEquals('redirectTrustedURL', $e->getMessage());
            $this->assertEquals('http://my.url.com', $e->getUrl());
            $this->assertEquals($params, $e->getParams());
        }

Mock Auth Sources

See MockAuthSourceTest. bootstrap.php needs to explicitly load the Source.php file

$kernel->loadFile($projectRoot . '/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Auth/Source.php');

统计信息

  • 总下载量: 3.51k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 6
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-2.1-only
  • 更新时间: 2018-02-20