note: you can also reset the spy before calling updateThread: `ThreadListUI.removeThread.reset()` so that the test will look more sensible (you'll be able to check that removeThread was not called)