Próbuję dowiedzieć się, jak pisać testy jednostkowe dla aplikacji serwera, która wymaga gniazd w języku C#. Muszę czytać z gniazda w celu przetworzenia żądania. W Javie mogłem uniknąć gniazd przy użyciu strumieni, więc podczas pisania testów jednostkowych mogłem z łatwością przekonwertować ciąg na strumień.C# testy jednostkowe przy użyciu gniazd
// ====== Input ======
InputStream socketInputStream = new InputStream(socket.getInputStream());
// or using string instead like this
InputStream socketInputStream = new ByteArrayInputStream("string".getBytes());
BufferedReader in = new BufferedReader(new InputStreamReader(socketInputStream));
// ====== Output ======
OutputStream socketOutputStream = new OutputStream(socket.getOutputStream());
// I need to write byte[] to the stream
BufferedOutputStream out = new BufferedOutputStream(socketOutputStream);
Znalazłem tylko NetworkStream(), ale także wymaga gniazda.
Jak mogę to osiągnąć w języku C#, aby utworzyć strumienie bez gniazd? A jak mogę napisać do strumienia i przeczytać go ponownie, aby sprawdzić, czy wiadomość jest poprawna?
Może [MemoryStream] (http://msdn.microsoft.com/en-us/library/system. io.memorystream.aspx), który jest wspierany przez bajt []. Jeśli chcesz napisać ciąg znaków i możesz "zakodować" kodowanie, możesz użyć czegoś takiego jak [Encoding.GetBytes] (http://msdn.microsoft.com/en-us/library/ds4kkd55%28v=vs .100% 29.aspx), aby przekonwertować ciąg na bajt [] – nkvu
, jeśli jest on poparty bajtem [] w jaki sposób mogę go użyć do odczytu z gniazda? program musi mieć możliwość uzyskania strumienia niezależnie od tego, czy jest on utworzony przez ciąg lub gniazdo – dnanon