/ / Testowanie jednostkowe SocketAsyncEventArgs - c #, .net, visual-studio-2010, testowanie jednostkowe

Testy jednostkowe SocketAsyncEventArgs - c #, .net, visual-studio-2010, testowanie jednostkowe

Próbuję skonfigurować test jednostkowy metody, która pobiera SocketAsyncEventArgs, tj. Jedną z funkcji IOCP z klasy Sockets.

Aby wrzucić jedną z tych klas do mojejfunkcja, muszę zmienić właściwość .BytesTransferred z SAEA. Jak to zrobić? Próbowałem użyć PrivateObject.SetFieldOrProperty, ale mówi mi, że nie jest w stanie znaleźć tej właściwości:

pargs.SetFieldOrProperty("BytesTransferred", expected);

Otrzymuję następujący wyjątek: "Nie znaleziono metody" System.Net.SNet.SocketAsyncEventArgs.BytesTransferred ".

Odpowiedzi:

3 dla odpowiedzi № 1

Ta właściwość nie ma setera. Dwa rozwiązania:

  1. Nie używaj SocketAsyncEventArgs do testowania, zamiast tego testuj na jakimś fałszywym obiekcie.
  2. Ustaw prywatne pole m_BytesTransferred. Użyj reflektora, aby przyjrzeć się szczegółom implementacji.

Rozwiązanie nr 2 wprawiłoby mnie w nerwowość. Poszedłem z numerem 1.