Yes, this behaviour is guaranteed:
@Before:
The
@Beforemethods of superclasses will be run before those of the current class, unless they are overridden in the current class. No other ordering is defined.
@After:
The
@Aftermethods declared in superclasses will be run after those of the current class, unless they are overridden in the current class.