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

📄 chain.test

📁 这是一个Linux下的集成开发环境
💻 TEST
字号:
## Tests for chaining methods and procs# ----------------------------------------------------------------------#   AUTHOR:  Michael J. McLennan#            Bell Labs Innovations for Lucent Technologies#            mmclennan@lucent.com#            http://www.tcltk.com/itcl##      RCS:  $Id: chain.test,v 1.1 2003/02/05 10:53:54 mdejong Exp $# ----------------------------------------------------------------------#            Copyright (c) 1993-1998  Lucent Technologies, Inc.# ======================================================================# See the file "license.terms" for information on usage and# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.package require tcltestnamespace import -force ::tcltest::*if {[string compare test [info procs test]] == 1} then {source defs}package require Itcl# ----------------------------------------------------------------------#  Chaining methods and procs# ----------------------------------------------------------------------test chain-1.1 {define simple classes with inheritance} {    itcl::class test_chain_a {        constructor {args} {            eval chain $args        } {            global ::test_chain_status            lappend test_chain_status "a::constructor $args"        }        method show {mesg} {            chain $mesg            global ::test_chain_status            lappend test_chain_status "a::show $mesg"        }        proc tell {mesg} {            global ::test_chain_status            lappend test_chain_status "a::tell $mesg"            chain $mesg        }    }    itcl::class test_chain_b {        constructor {args} {            eval chain $args        } {            global ::test_chain_status            lappend test_chain_status "b::constructor $args"        }        method show {mesg} {            chain $mesg            global ::test_chain_status            lappend test_chain_status "b::show $mesg"        }        proc tell {mesg} {            global ::test_chain_status            lappend test_chain_status "b::tell $mesg"            chain $mesg        }    }    itcl::class test_chain_c {        inherit test_chain_a test_chain_b        constructor {args} {            eval chain $args        } {            global ::test_chain_status            lappend test_chain_status "c::constructor $args"        }        proc tell {mesg} {            global ::test_chain_status            lappend test_chain_status "c::tell $mesg"            chain $mesg        }    }    itcl::class test_chain_d {        inherit test_chain_c        constructor {args} {            eval chain $args        } {            global ::test_chain_status            lappend test_chain_status "d::constructor $args"        }        method show {mesg} {            chain $mesg            global ::test_chain_status            lappend test_chain_status "d::show $mesg"        }        proc tell {mesg} {            global ::test_chain_status            lappend test_chain_status "d::tell $mesg"            chain $mesg        }    }} ""test chain-1.2 {create a test object} {    set test_chain_status ""    set testobj [test_chain_d #auto 1 2 3]    set test_chain_status} {{b::constructor 1 2 3} {a::constructor 1 2 3} {c::constructor 1 2 3} {d::constructor 1 2 3}}test chain-1.3 {invoke a chained method} {    set test_chain_status ""    $testobj show "hello there"    set test_chain_status} {{b::show hello there} {a::show hello there} {d::show hello there}}test chain-1.4 {invoke a chained method with a specific name} {    set test_chain_status ""    $testobj test_chain_d::show "hello there"    set test_chain_status} {{b::show hello there} {a::show hello there} {d::show hello there}}test chain-1.5 {chained methods can cross multiple-inheritance branches} {    set test_chain_status ""    $testobj test_chain_a::show "hello there"    set test_chain_status} {{b::show hello there} {a::show hello there}}test chain-1.6 {invoke a chained proc} {    set test_chain_status ""    test_chain_d::tell "testing 1 2 3"    set test_chain_status} {{d::tell testing 1 2 3} {c::tell testing 1 2 3} {a::tell testing 1 2 3}}test chain-1.7 {invoke a chained proc} {    set test_chain_status ""    test_chain_c::tell "testing 1 2 3"    set test_chain_status} {{c::tell testing 1 2 3} {a::tell testing 1 2 3}}test chain-2.1 {create a test object in a base class} {    set test_chain_status ""    set testobj [test_chain_c #auto 4 5 6]    set test_chain_status} {{b::constructor 4 5 6} {a::constructor 4 5 6} {c::constructor 4 5 6}}test chain-2.2 {invoke a chained method} {    set test_chain_status ""    $testobj show "hello there"    set test_chain_status} {{b::show hello there} {a::show hello there}}test chain-3.0 {invoke "chain" outside of a class} {    list [catch {itcl::builtin::chain 1 2 3} err] $err} {1 {cannot chain functions outside of a class context}}# ----------------------------------------------------------------------#  Clean up# ----------------------------------------------------------------------itcl::delete class test_chain_d test_chain_c test_chain_b test_chain_a::tcltest::cleanupTestsreturn

⌨️ 快捷键说明

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