Вы должны настроить @Spy
в методе @Before
, потому что во время создания класса макеты еще не инициализированы:
public class MyWebSocketHandlerDecpratorTest {
@Mock
private WebSocketSession session;
@Mock
WebSocketHandler delegate;
private WebSocketHandlerDecorator webSocketHandlerDecorator;
@InjectMocks
MyWebSocketHandlerDecorator myWebSocketHandlerDecorator;
private TextMessage message;
@Before
public void set_up(){
MockitoAnnotations.initMocks(this);
webSocketHandlerDecorator = Mockito.spy(new WebSocketHandlerDecorator(delegate));
message = new TextMessage("Test Message".getBytes());
}
@Test
public void handleMessage()throws Exception{
myWebSocketHandlerDecorator.handleMessage(session, message);
verify(webSocketHandlerDecorator, times(1)).handleMessage(session, message);
}
}
Необычно назвать код нешепелявости от шепелявости, и редко необходимый. CLX (клиентская реализация X11 для CL) не связывается с реализацией Xlib, но "говорит" X11 непосредственно. В любой системе Ваша реализация CL, вероятно, будет уже иметь превосходные рычаги операционной системы, представляющие это ненужное.
Тем не менее ответ зависит от реализации шепелявости:
В ECL можно на самом деле разместить среду CL под C и просто звонить cl_eval()
с кодом для выполнения. Это может позволить Вам записать, что Ваше приложение (или хост приложений) в C (или C++) и "звонит в" код шепелявости.
В CCL существует C-compatible, называющий интерфейс, который позволяет Вам сделать что-то вроде этого:
(with-cstrs ((x "Hello World"))
(#_puts x))
В большинстве других реализаций CL (как SBCL; и да это работает в ECL и CCL также), можно использовать UFFI (или CFFI), который просто позволяет Вам вызвать функции C, который является тем, о чем говорят другие люди. Если это - все, что Вы хотите сделать, то CFFI является хорошим, безопасным местом для запуска.