📄 visual_test.php.svn-base
字号:
<?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 + -