⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 visual_test.php

📁 PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php
    // $Id: visual_test.php 1547 2007-07-04 00:42:05Z lastcraft $

    // NOTE:
    // Some of these tests are designed to fail! Do not be alarmed.
    //                         ----------------

    // The following tests are a bit hacky. Whilst Kent Beck tried to
    // build a unit tester with a unit tester, I am not that brave.
    // Instead I have just hacked together odd test scripts until
    // I have enough of a tester to procede more formally.
    //
    // The proper tests start in all_tests.php
    require_once('../unit_tester.php');
    require_once('../shell_tester.php');
    require_once('../mock_objects.php');
    require_once('../reporter.php');
    require_once('../xml.php');

    class TestDisplayClass {
        var $_a;

        function TestDisplayClass($a) {
            $this->_a = $a;
        }
    }

    class PassingUnitTestCaseOutput extends UnitTestCase {

        function testOfResults() {
            $this->pass('Pass');
        }

        function testTrue() {
            $this->assertTrue(true);
        }

        function testFalse() {
            $this->assertFalse(false);
        }

        function testExpectation() {
            $expectation = &new EqualExpectation(25, 'My expectation message: %s');
            $this->assert($expectation, 25, 'My assert message : %s');
        }

        function testNull() {
            $this->assertNull(null, "%s -> Pass");
            $this->assertNotNull(false, "%s -> Pass");
        }

        function testType() {
            $this->assertIsA("hello", "string", "%s -> Pass");
            $this->assertIsA($this, "PassingUnitTestCaseOutput", "%s -> Pass");
            $this->assertIsA($this, "UnitTestCase", "%s -> Pass");
        }

        function testTypeEquality() {
            $this->assertEqual("0", 0, "%s -> Pass");
        }

        function testNullEquality() {
            $this->assertNotEqual(null, 1, "%s -> Pass");
            $this->assertNotEqual(1, null, "%s -> Pass");
        }

        function testIntegerEquality() {
            $this->assertNotEqual(1, 2, "%s -> Pass");
        }

        function testStringEquality() {
            $this->assertEqual("a", "a", "%s -> Pass");
            $this->assertNotEqual("aa", "ab", "%s -> Pass");
        }

        function testHashEquality() {
            $this->assertEqual(array("a" => "A", "b" => "B"), array("b" => "B", "a" => "A"), "%s -> Pass");
        }

        function testWithin() {
            $this->assertWithinMargin(5, 5.4, 0.5, "%s -> Pass");
        }

        function testOutside() {
            $this->assertOutsideMargin(5, 5.6, 0.5, "%s -> Pass");
        }

        function testStringIdentity() {
            $a = "fred";
            $b = $a;
            $this->assertIdentical($a, $b, "%s -> Pass");
        }

        function testTypeIdentity() {
            $a = "0";
            $b = 0;
            $this->assertNotIdentical($a, $b, "%s -> Pass");
        }

        function testNullIdentity() {
            $this->assertNotIdentical(null, 1, "%s -> Pass");
            $this->assertNotIdentical(1, null, "%s -> Pass");
        }

        function testHashIdentity() {
        }

        function testObjectEquality() {
            $this->assertEqual(new TestDisplayClass(4), new TestDisplayClass(4), "%s -> Pass");
            $this->assertNotEqual(new TestDisplayClass(4), new TestDisplayClass(5), "%s -> Pass");
        }

        function testObjectIndentity() {
            $this->assertIdentical(new TestDisplayClass(false), new TestDisplayClass(false), "%s -> Pass");
            $this->assertNotIdentical(new TestDisplayClass(false), new TestDisplayClass(0), "%s -> Pass");
        }

        function testReference() {
            $a = "fred";
            $b = &$a;
            $this->assertReference($a, $b, "%s -> Pass");
        }

        function testCloneOnDifferentObjects() {
            $a = "fred";
            $b = $a;
            $c = "Hello";
            $this->assertClone($a, $b, "%s -> Pass");
        }

        function testPatterns() {
            $this->assertPattern('/hello/i', "Hello there", "%s -> Pass");
            $this->assertNoPattern('/hello/', "Hello there", "%s -> Pass");
        }

        function testLongStrings() {
            $text = "";
            for ($i = 0; $i < 10; $i++) {
                $text .= "0123456789";
            }
            $this->assertEqual($text, $text);
        }
    }

    class FailingUnitTestCaseOutput extends UnitTestCase {

        function testOfResults() {
            $this->fail('Fail');        // Fail.
        }

        function testTrue() {
            $this->assertTrue(false);        // Fail.
        }

        function testFalse() {
            $this->assertFalse(true);        // Fail.
        }

        function testExpectation() {
            $expectation = &new EqualExpectation(25, 'My expectation message: %s');
            $this->assert($expectation, 24, 'My assert message : %s');        // Fail.
        }

        function testNull() {
            $this->assertNull(false, "%s -> Fail");        // Fail.
            $this->assertNotNull(null, "%s -> Fail");        // Fail.
        }

        function testType() {
            $this->assertIsA(14, "string", "%s -> Fail");        // Fail.
            $this->assertIsA(14, "TestOfUnitTestCaseOutput", "%s -> Fail");        // Fail.
            $this->assertIsA($this, "TestReporter", "%s -> Fail");        // Fail.
        }

        function testTypeEquality() {
            $this->assertNotEqual("0", 0, "%s -> Fail");        // Fail.
        }

        function testNullEquality() {
            $this->assertEqual(null, 1, "%s -> Fail");        // Fail.
            $this->assertEqual(1, null, "%s -> Fail");        // Fail.
        }

        function testIntegerEquality() {
            $this->assertEqual(1, 2, "%s -> Fail");        // Fail.
        }

        function testStringEquality() {
            $this->assertNotEqual("a", "a", "%s -> Fail");    // Fail.
            $this->assertEqual("aa", "ab", "%s -> Fail");        // Fail.
        }

        function testHashEquality() {
            $this->assertEqual(array("a" => "A", "b" => "B"), array("b" => "B", "a" => "Z"), "%s -> Fail");
        }

        function testWithin() {
            $this->assertWithinMargin(5, 5.6, 0.5, "%s -> Fail");   // Fail.
        }

        function testOutside() {
            $this->assertOutsideMargin(5, 5.4, 0.5, "%s -> Fail");   // Fail.
        }

        function testStringIdentity() {
            $a = "fred";
            $b = $a;
            $this->assertNotIdentical($a, $b, "%s -> Fail");       // Fail.
        }

        function testTypeIdentity() {
            $a = "0";
            $b = 0;
            $this->assertIdentical($a, $b, "%s -> Fail");        // Fail.
        }

        function testNullIdentity() {
            $this->assertIdentical(null, 1, "%s -> Fail");        // Fail.
            $this->assertIdentical(1, null, "%s -> Fail");        // Fail.
        }

        function testHashIdentity() {
            $this->assertIdentical(array("a" => "A", "b" => "B"), array("b" => "B", "a" => "A"), "%s -> fail");        // Fail.
        }

        function testObjectEquality() {
            $this->assertNotEqual(new TestDisplayClass(4), new TestDisplayClass(4), "%s -> Fail");    // Fail.
            $this->assertEqual(new TestDisplayClass(4), new TestDisplayClass(5), "%s -> Fail");        // Fail.
        }

        function testObjectIndentity() {
            $this->assertNotIdentical(new TestDisplayClass(false), new TestDisplayClass(false), "%s -> Fail");    // Fail.
            $this->assertIdentical(new TestDisplayClass(false), new TestDisplayClass(0), "%s -> Fail");        // Fail.
        }

        function testReference() {
            $a = "fred";
            $b = &$a;
            $this->assertClone($a, $b, "%s -> Fail");        // Fail.
        }

        function testCloneOnDifferentObjects() {
            $a = "fred";
            $b = $a;
            $c = "Hello";
            $this->assertClone($a, $c, "%s -> Fail");        // Fail.
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -