Следующий код показывает, что это возможно:
class OverridenStaticMeth {
static void printValue() {
System.out.println("Overriden Meth");
}
}
public class OverrideStaticMeth extends OverridenStaticMeth {
static void printValue() {
System.out.println("Overriding Meth");
}
public static void main(String[] args) {
OverridenStaticMeth osm = new OverrideStaticMeth();
osm.printValue();
System.out.println("now, from main");
printValue();
}
}
Из вашего StackBlitz (и многих лог-операторов!) Видно, что при изменении значения в component.board
оно также меняло значение в data
. Это имеет смысл, поскольку назначение в методе beforeEach
(component.board = data;
) будет просто назначать component.board
тот же указатель, что и data
. Тогда изменение одного изменит другое.
Чтобы обойти это, вы должны, как отмечают некоторые комментарии, клонировать объект data
, а не назначать его напрямую. Вы можете сделать это, используя JSON.parse(JSON.stringify(MockBoard['board']))
, как упоминал Джелле , или использовать что-то вроде метода Лодаша clone
(cloneDeep
для более сложных объектов).
Вот обновленный StackBlitz , который вы можете использовать для сравнения с вашим исходным кодом.