Я пишу набор модульных тестов для большого, сложного класса, называемого ImageEditor, из унаследованного кода, где обработка изображений и функциональность графического интерфейса пользователя строго не разделены.Один из методов в классе, BaseImageChanged, кажется, полностью озабочен тем, как изображения отображаются, и должен быть отключен в моих модульных тестах, чтобы избежать ненужной сложности.Тестовый проект на C #, а оригинальный код на VB;Моя идея состояла в том, чтобы создать Decorator для класса в C #, а затем спрятать метод за пустым, который ничего не делает.Однако, когда я пытаюсь запустить модульный тест, код VB продолжает ссылаться на старый метод BaseImageChanged, как будто замены не существует.Вот что я делаю:
(класс VB)
Public Class ImageEditor
...
Public Sub BaseImageChanged()
...
End Sub
...
End Class
(класс C #)
class ImageEditorTestingClass : ImageEditor_Accessor
{
public new void BaseImageChanged() {}
}
Есть ли способ добиться такой совместимости,или мне придется искать другой путь?
РЕДАКТИРОВАТЬ: ошибка компилятора оказалась проблема с отражением.Кроме того, переопределение метода не работало до тех пор, пока базовый класс являлся средством доступа к ImageEditor вместо исходного класса ImageEditor (ошибки компилятора нет, но поведение базового метода не было переопределено).