Я довольно новичок в тестировании кода и assert
раньше был шлюхой. В модульном тестировании меня беспокоит то, что от вас часто требуется создавать public
(или, по крайней мере internal
) поля, которые были бы в private
противном случае, отменять readonly
их, создавать вместо них private
методы protected virtual
и т. Д.
Недавно я обнаружил, что вы можете избежать этого, используя такие вещи, как класс PrivateObject, чтобы получить доступ к чему-либо в объекте с помощью отражения. Но это делает ваши тесты менее удобными для сопровождения (что-то не получится во время выполнения, а не во время компиляции, оно будет сломано простым переименованием, сложнее отладить ...). Каково ваше мнение по этому поводу? Каковы лучшие практики в модульном тестировании относительно ограничения доступа?
edit: учтите, например, что у вас есть класс с кешем в файле на диске, и в ваших тестах вы хотите вместо этого записывать в память.