Я пытаюсь научиться писать тесты.Я также изучаю 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));
}});
}
}
Он проходит тест и в основном ничего не делает, что я хотел, чтобысоздайте карту и проверьте ее размер, и вы знаете, как работают некоторые варианты, пытаясь справиться с этим.Разберитесь с лучшими примерами, что еще я могу проверить здесь или какие-либо другие упражнения мне очень помогут.Тпй