within a single unit:test function that itself performs an updating function there’s no way to then evaluate the result of the update as any asserts will be in the same transaction.
That's where %unit:before and (more likely) %unit:after come in. You can't make the update and assertion within a single function, as you say, but the effective workaround is to do it after the fact, in a separate transaction.
Andrew