测试双打:可以控制的“假”的名称是什么

时间:2012-07-20 07:58:20

标签: java unit-testing

我一直在写很多使用假货的Java代码,但这些假货具有可控行为。他们倾向于伪造实际的硬件,所以一个例子可能是一个测试,我告诉假的它应该表现得好像它丢失了通信,或报告硬件故障。一个简单的例子:

interface CommDevice {
    boolean isConnected();
}

class FakeCommDevice implements CommDevice {
    private boolean connected;
    public boolean isConnected() {return connected;}
    public void setConnected(boolean x) {connected=x;}
}

我应该将控制代码放入新界面吗? E.g。

class FakeCommDevice implements CommDevice {
    public class Manager () {
        public void setConnected(boolean x) {connected=x;}
    }
    private boolean connected;
    public boolean isConnected() {return connected;}
    public Manager manager() {return new Manager();}
}

这些类肯定是假货的子集,但它们排除了其他假货类。是否有适当的术语来描述它们?

2 个答案:

答案 0 :(得分:0)

称呼他们mock objects或只是“嘲笑”。

答案 1 :(得分:0)

你会有效地为你的'假'(更好地称为'mock')类添加新功能,这会使你的代码有点误导。坚持使用相同的界面,然后看看Mockito,如果你还没有。