【发布时间】:2012-12-13 02:55:53
【问题描述】:
当你编写程序时,存根总是意味着同样的事情吗?
“存根为对象、方法或 功能以删除外部依赖项。存根是 通常在单元和组件测试期间使用。如果你想 编写单元测试并需要替换对数据库的简单调用, 外部库(例如,文件 I/O)或其他系统 API、存根 可能非常适合您的需求。”
我认为存根和骨架仅在 CORBA 中,但这里有一个存根,这是同一件事/概念吗?当“存根”一词出现在相当不同的编程模型中时(RMI 和 MIPS 组件是 2 个相当不同的),两者都有称为“存根”的概念/事物,我也知道 RMI / CORBA 有一种称为骨架的东西但也有可能有一个没有骨架的存根或什么?
例如,当 main 转换为程序集时,它在这里被称为 stud,是否存在与该存根和骨架的连接,用于网络编程(如 CORBA),或者尽管两者都称为存根,但它没有连接?
movia r8,stub # source
movia r9,0x800020 # destination
ldw r10,0(r8) # read
stw r10,0(r9) # write
ldw r10,4(r8) # read part 2
stw r10,4(r9) # write
ldw r10,8(r8) # read jump
stw r10,8(r9) # write
... # initialize others
上面的代码是存根的例子吗?如果是这样,什么是骨架或不适用?
感谢您的信息。
【问题讨论】:
-
这是一个非常通用的编程术语。看看维基百科的文章:en.wikipedia.org/wiki/Method_stub
-
我不知道是否有一个真正的定义,但上面的那个东西对我来说就像一个存根。同义词可以是包装器。
-
存根是一个通用术语,并不特定于任何语言、平台或环境。您引用的通用定义几乎涵盖了它,出于测试目的,甚至为了分发某些东西,您可以使用存根来关闭一些您没有真正使用或想要伪造的悬空接口,以便它不会干扰,或者如你引用的定义测试接口。
标签: assembly rmi mips corba stub