Модульное тестирование, где вы зависите от реализации другого метода


Я осуществляет разрыв буфера , и я пытаюсь написать тест для метода Insert, тест в настоящее время выглядит примерно так:

gapBuffer.insert('a')
assertEquals(gapBuffer.getText(), "a")
gapBuffer.insert('c')
assertEquals(gapBuffer.getText(), "ac")
gapBuffer.insert('d')
assertEquals(gapBuffer.getText(), "acd")
gapBuffer.moveCursorTo(1)
gapBuffer.insert('d')
assertEquals(gapBuffer.getText(), "abcd")

Сейчас проблема заключается в том, что этот метод не просто тестирование метод Insert, потому что это зависит от правильности то gettext() и moveCursorTo() методы

Примечание: то gettext() и moveCursorTo() методы не тривиально, но есть испытания собственных



342
0
задан 6 декабря 2011 в 10:12 Источник Поделиться
Комментарии
1 ответ

Это, как правило, трудно проверить сеттер без геттеров и наоборот. Задняя дверь манипуляций в в xUnit тестирования моделей обсуждать это в деталях.

Некоторые запахи из той же книги/сайта:

Я бы создать не менее трех тестов из вышеприведенной:

@Test
public void testInsert() {
gapBuffer.insert('a')
assertEquals(gapBuffer.getText(), "a")
}

@Test
public void testInsertTwice() {
gapBuffer.insert('a')
gapBuffer.insert('c')
assertEquals(gapBuffer.getText(), "ac")
}

@Test
public void testMoveCursorToAndInsert() {
gapBuffer.insert("acd")
gapBuffer.moveCursorTo(1)
gapBuffer.insert('d')
assertEquals(gapBuffer.getText(), "abcd")
}

Это помогает локализация дефекта.

3
ответ дан 7 декабря 2011 в 08:12 Источник Поделиться