我有个想法 关于测试的
是否可以将测试与代码合并在一起呢? (因为在写 elisp 的时候经常这么做的)
比如可以这样:
class SongList ## 你应该能够猜出 AE?是什么意思吧
##T list = SongList.new ## 你或许也知道了 ##T 是做什么的
def initialize() @songs = Array.new end
##T list.append("zhou").append("chong")
##T AE?("zhou",list[0])
##T AE?("chong",list[1])
##T AN?(list[2])
def append(song) @songs.push(song); self end
##T AE?("zhou",list.delete_first)
def delete_first() @songs.shift end
##T AE?("chong",list.delete_last)
##T AN?(list.delete_first)
##T AN?(list.delete_last)
def delete_last() @songs.pop end
end
看到了一个词:literate programming 可以按照任意的顺序写代码
应该说 ruby 实现了一小部分的 literate 对测试应该有用
我会写几行 elisp:提取 ##T 生成 test
(用 elisp 多一点 如没有标点 请原谅)