Jestem całkiem początkującym w testowaniu kodu, a wcześniej byłem assert
dziwką. Jedną z rzeczy, która mnie martwi w testach jednostkowych, jest to, że często wymaga to od ciebie public
(lub przynajmniej internal
) wypełnienia pól, które byłyby private
inaczej, usunięcia readonly
ich, zamiast tego stworzenia private
metod protected virtual
itp.
Niedawno odkryłem, że można tego uniknąć, używając rzeczy takich jak klasa PrivateObject, aby uzyskać dostęp do czegokolwiek w obiekcie poprzez odbicie. Ale to sprawia, że twoje testy są mniej łatwe w utrzymaniu (rzeczy zawiedzie podczas wykonywania niż kompilacji czasu, zostanie zepsute przez zwykłą zmianę nazwy, trudniej jest debugować ...). Jaka jest twoja opinia na ten temat ? Jakie są najlepsze praktyki w testowaniu jednostkowym dotyczące ograniczenia dostępu?
edytuj: rozważ na przykład, że masz klasę z pamięcią podręczną w pliku na dysku, aw testach zamiast tego chcesz zapisać w pamięci.