Я хочу проверить методы addMCU
и removeMCU
моего класса MCUModel
, используя Спока. Тем не менее, я немного озадачен тем, как подойти к этому.
public class MCUModel {
private static int counter = 1;
private final ObjectProperty<MCU> selectedMCU;
private final ObservableList<MCU> mcuList;
public MCUModel() {
selectedMCU = new SimpleObjectProperty<>(null);
mcuList = FXCollections.observableArrayList();
}
public ObjectProperty<MCU> selectedMCUProperty() {
return selectedMCU;
}
public void setSelectedMCU(MCU mcu) {
selectedMCU.set(mcu);
}
public ObservableList<MCU> getMCUList() {
return mcuList;
}
public void addMCU() {
MCU mcu = new MCU();
mcu.setName("MCU" + counter++);
mcuList.add(mcu);
selectedMCU.set(mcu);
}
public void removeMCU() {
if (selectedMCU.get() == null) return;
int index = mcuList.indexOf(selectedMCU.get());
mcuList.remove(index);
if (mcuList.size() == 0)
selectedMCU.set(null);
else if (mcuList.size() > index)
selectedMCU.set(mcuList.get(index));
else
selectedMCU.set(mcuList.get(--index));
}
}
В других примерах здесь было предложено изменить конструктор в соответствии с:
public MCUModel(ObjectProperty<MCU> selectedMCU, ObservableList<MCU> mcuList) {
this.selectedMCU = selectedMCU;
this.mcuList = mcuList;
}
Это позволил бы мне смоделировать поля, чтобы проверить, вызваны ли там методы или нет. Однако я не уверен, что это правильный подход в данном конкретном случае.
Я бы предположил, что в случае метода addMCU
я хочу проверить, создан ли новый экземпляр или нет и что оба mcuList.add(mcu)
и selectedMCU.set()
вызываются и передаются этому экземпляру.