我正在尝试学习如何编写测试。我也在学习 Java,有人告诉我应该学习/使用/练习 jMock,我在网上找到了一些有助于一定程度的文章,例如:
http://www.theserverside.com/news/1365050/Using-JMock-in-Test-Driven-Development
http://jeantessier.com/SoftwareEngineering/Mocking.html#jMock
而且我发现的大多数文章都是关于测试驱动开发的,首先编写测试然后编写代码以使测试通过。我现在不是在寻找那个,我正在尝试使用 jMock 为已经存在的代码编写测试。
官方文档至少可以说含糊不清,对我来说太难了。有没有人有更好的方法来学习这个。好书/链接/教程会对我有很大帮助。谢谢你
编辑 - 更具体的问题:
http://jeantessier.com/SoftwareEngineering/Mocking.html#jMock - 来自这篇文章
试过这个来模拟这个简单的类:
import java.util.Map;
public class Cache {
private Map<Integer, String> underlyingStorage;
public Cache(Map<Integer, String> underlyingStorage) {
this.underlyingStorage = underlyingStorage;
}
public String get(int key) {
return underlyingStorage.get(key);
}
public void add(int key, String value) {
underlyingStorage.put(key, value);
}
public void remove(int key) {
underlyingStorage.remove(key);
}
public int size() {
return underlyingStorage.size();
}
public void clear() {
underlyingStorage.clear();
}
}
这是我尝试创建测试/模拟的方式:
public class CacheTest extends TestCase {
private Mockery context;
private Map mockMap;
private Cache cache;
@Override
@Before
public void setUp() {
context = new Mockery() {
{
setImposteriser(ClassImposteriser.INSTANCE);
}
};
mockMap = context.mock(Map.class);
cache = new Cache(mockMap);
}
public void testCache() {
context.checking(new Expectations() {{
atLeast(1).of(mockMap).size();
will(returnValue(int.class));
}});
}
}
它通过了测试,基本上什么也没做,我想要的是创建一个地图并检查它的大小,你知道工作一些变化试图抓住这一点。通过示例更好地理解,我还可以在这里测试什么或任何其他练习会对我有很大帮助。tnx