单元测试使用Mockit,测试interface的实际意义在哪里?

2025-12-15 05:49:50
推荐回答(1个)
回答1:

Mockit的文档第一个例子如下:
1. Let's verify some behaviour!
//Let's import Mockito statically so that the code looks clearer
import static org.mockito.Mockito.*;
//mock creation
List mockedList = mock(List.class);
//using mock object
mockedList.add("one");
mockedList.clear();
//verification
verify(mockedList).add("one");
verify(mockedList).clear();
我想知道的是,
如果一个List interface是编译通过的,上述代码例子中的测试的行为就是可预期的且一定成功的吗? 既然是一定成功,
问题可能很弱智,但是很纠结,希望有人可以为我解解惑。。。问题补充:suziwen 写道引用写接口的目的一般是,让这个接口的所有实现都具备某个共同的行为。这个行为不仅目前实现的类具备,将来要写的实现也都必须具备。因此,就需要为这个接口编写一个通用的测试程序,这个测试程序不仅能测试当前已经实现的类的通用属性,而且可以不加修改应用于将来要实现的类。
我的问题可能描述不是很清楚。首先有一个前提就是的:我的代码是Java写的。
所以问题应该如下:
2. 您的回答中有一句: “这个测试程序不仅能测试当前已经实现的类的通用属性”,我想问的是,针对接口的测试,如我在问题中所贴出的代码? 怎么能够“测试当前已经实现的类的通用属性”? 在这个测试中,没有任何跟具体的实现类的关联存在。我在代码中贴的测试只能测试到这个Interface本身的约定,并不能测试到任何具体的实现类?谢谢。