У меня нет опыта работы с JUnit и использования методов с интерфейсом в качестве параметра.
Как я могу выполнить JUnit
тесты для кода с этой структурой?
Код выводит частоту слова из заданной строки m_Content.
Мой код выглядит так:
public interface ICharacterReader {
char GetNextChar() throws EOFException;
void Dispose();
}
public class WordOccurences {
public static void acceptInterface(ICharacterReader obj)
{
obj.Dispose();
}
public static void getWords(SimpleCharacterReader readCharacter, StringBuilder text) throws EOFException {
while(true){
text.append(readCharacter.GetNextChar());
}
}
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
SimpleCharacterReader reader = new SimpleCharacterReader();
try {
getWords(reader,sb);
} catch (EOFException e) {
//e.printStackTrace();
}
WordOccurences.acceptInterface(new ICharacterReader()
{
@Override
public char GetNextChar() throws EOFException {
// TODO Auto-generated method stub
return 0;
}
@Override
public void Dispose() {
//prints some values
});
}
}
}
}
открытый класс SimpleCharacterReader реализует ICharacterReader {
private int m_Pos = 0;
private String m_Content = "some string "
public char GetNextChar() throws EOFException {
if (m_Pos >= m_Content.length()) {
throw new EOFException();
}
return m_Content.charAt(m_Pos++);
}
public void Dispose() {
// do nothing
}
}