Что должно быть b
, c
и z
быть в вашем образце-коде?
Обычно вы издеваетесь над любыми другими объектами, которые вызывает ваш метод, находящийся под тестом, или требуемые объекты, например, f.e. a.method1()
вызова может быть издевался, как это:
// Arrange or given
Z sut = new Z();
Object method1RetValue = new Object();
A mockedA = mock(A.class);
Mockito.when(mockedA.method1()).thenReturn(method1RetValue);
// set the mocked version of A as a member of Z
// use one of the following instructions therefore:
sut.a = mockedA;
sut.setA(mockedA);
Whitebox.setInternalState(sut, "a", mockedA);
// Act or when
Object ret = sut.method2();
// Assert or then
assertThat(ret, is(equalTo(...)));
Как a
является членом вашего теста-класса, вам нужно будет установить высмеивала версию первых, хотя, либо путем прямого присвоение поля, инкубационных-методы или с помощью Whitebox.setInternalState(...)
, как изображенный в приведенном выше примере кода.
Обратите внимание, что метод издевательства в данный момент возвращает объект, вы можете вернуть возвращаемый метод. Но поскольку ваш пример не имеет реального типа, я просто использовал объект здесь.
Вы имели в виду, что хотите издеваться над методом ** 1 ** ??? Вы не должны издеваться над методом, который хотите проверить ... – Codebender
Если вы хотите протестировать некоторый метод с помощью mockito, это лучше, что сделает вас новым классом и сделайте правильные ановативы, не забудьте импортировать JAR. Вот пример. Однако, я никогда не видел насмешливый метод вроде. @mock public void {}; –
http://www.adictosaltrabajo.com/tutoriales/mockito-example/ –