Модульные тесты для весенней загрузки - PullRequest
0 голосов
/ 04 апреля 2020

Я никогда раньше не использовал тестирование JUnit. Мне нужно протестировать свой код с помощью JUnit. Я искал в Google весь день, но проблема в том, что я нашел примеры с использованием Mockito, но в своем коде я не использовал инъекции зависимостей (@Autowired). Как я могу использовать его для этих методов?

Заранее спасибо.

public class WordService {

public WordService() {

}


public static String upperCaseFirst(String value) {
    char[] listChar = value.toCharArray();
    listChar[0] = Character.toUpperCase(listChar[0]);
    return new String(listChar);
}

/**
 * Find and return the search word
 * @param name
 * @return the word sought or null if not found
 */
public Word findWordByName(String name){

    String nameUpper = upperCaseFirst(name);

    WordDao w = new WordDao();
    Word found = w.findWord(nameUpper);

    List<String> definitions = new ArrayList<>();

    if(found != null) {
        for(int i=0; i<found.getDefinition().size(); i++) {
            StringBuffer defBuffer = new StringBuffer();

            String definitionFound = found.getDefinition().get(i);
            definitionFound = definitionFound.replace("\n", "");

            defBuffer.append(definitionFound);
            defBuffer.append("_");

            definitions.add(i, defBuffer.toString());
        }
        found.setDefinition(definitions);
    }
    return found;
}


/**
 * 
 * @return Return a list of words
 */
public List<Word> findAllWord(){

    WordDao w = new WordDao();
    return w.findAllWords();
}

}

1 Ответ

0 голосов
/ 04 апреля 2020

Вы можете извлечь WordDao на уровень класса в виде поля. Создать метод набора. После этого в модульном тесте вы можете смоделировать WordDao и контролировать, что будет результатом вызова методов. Для второго метода это что-то вроде:

WordDao wMocked = Mock(WordDao.class)
Word word1 = new...
Word word2 = new...
List<Word> words = List.of(word1, word2);
when(w.findAllWords()).thenReturn(words);
WordService ws = new WordService();
ws.setWordDao(wMocked);
Assert.equals(words, ws.findAllWords);
...