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