jUnit, тестирование "новой" ссылки - PullRequest
0 голосов
/ 13 сентября 2011

Предположим, у вас есть метод, подобный

public Something copy () {
  return new Something();
}

В вашем jUnit у вас есть

Something s1 = new Something();
Something s2 = s1.copy()

Другой, чем

assertTrue (s1 != s2);
assertTrue (s2 != null);
assertTrue (s1.toString().equals(s2.toString)));

Есть ли какой-то дополнительный способможет подтвердить, что copy () возвращает ссылку NEW ?

Ответы [ 4 ]

2 голосов
/ 14 сентября 2011

Первого достаточно, чтобы проверить, что они не совпадают, но есть также утверждение, встроенное в JUnit:

assertNotSame(s1, s2);
0 голосов
/ 14 сентября 2011

Еще одним отличным способом тестирования подобных вещей является тестовая среда Mockito (http://code.google.com/p/mockito/)

Позволяет проверить, что только определенные вещи называются N раз или нет, например:

Mockito.verify(mockOne, times(1)).mockedFunction();

Что подтверждает, что mockOne был вызван mockedFunction ровно один раз.

0 голосов
/ 14 сентября 2011

Если вы хотите использовать стиль Hamcrest: sameInstance

0 голосов
/ 14 сентября 2011

Конечно, используйте Assert.assertTrue(s1, s2)

Более того, это способ сравнения.Он вызывает Something.equals () внутренне и выдает исключение: equals возвращает false.

...