http://www.theserverside.com/news/1365050/Using-JMock-in-Test-Driven-Development
http://jeantessier.com/SoftwareEngineering/Mocking.html#jMock
我发现的大多数文章都是关于测试驱动的开发,首先编写测试然后编写代码以使测试通过.我现在不是在寻找,我正在尝试使用jMock为现有代码编写测试.
official documentation对我来说至少是模糊的,对我来说太难了.有没有人有更好的方法来学习这个.好书/链接/教程对我很有帮助.谢谢
编辑 – 更具体的问题:
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
解决方法
即使您100%致力于使用JMock,两者之间的概念也是相同的,这可以帮助您更好地理解它们.
模拟的目的是当你测试依赖于B和C的A类时,你对A的测试使用B和C的模拟版本来指定它们的确切行为,而不是使用你的B和C的真实实现. A的测试.否则你不是只测试A的单个单元,你也隐含地测试B和C.
原文地址:https://www.jb51.cc/java/129842.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。