If you truly do have a question with a small number of distinct correct responses, you can use the parserOneOf package. One place where I used this was for questions which asked for the characteristic polynomial of a matrix, since different textbooks differ on their definition by a factor of -1, so there are exactly 2 potentially correct responses.
In the context of integrals, using the upToConstant flag is probably the right way to go since it catches different expressions even beyond the ones that you are anticipating.