Я тестирую функцию класса A func1.Как переопределить метод в модульных тестах, который вызывается, из которого тестируется класс.
Func1 имеет локальную переменную класса B и вызывает функцию B func2. Код выглядит примерно так:
public Class A
{
public func1()
{
B object = new B();
int x = object.func2(something);
}
}
Когда я тестирую func1 в своих модульных тестов, я не хочу, чтобы func2 называется.
Так что я пытаюсь сделать что-то вроде этого в тесте:
B textObject = new B()
{
@override
int func2(something)
{
return 5;
}
}
Но он по-прежнему называя func2 в классе B. Пожалуйста, предложите, как справиться с этим.
Вы могли бы использовать инъекции зависимостей, рефакторинг 'A' взять' b' в качестве аргумента вместо создания «новой» функции внутри функции? С таким абстрактным примером трудно дать разумные советы. – jonrsharpe
Я не могу взять B как вход в конструкторе A ни в func1, как в качестве ввода, потому что я переопределяю func1 в классе A. Я могу сделать B как переменную класса в A, но это, похоже, не помогает или. Что бы вы предложили в этом случае? –
Я не уверен, в чем проблема; опять же, пример слишком абстрактный. Проведите некоторое исследование вокруг DI. – jonrsharpe