You have two options here.
You can either set up the right context so that CreateResponse works. This blog post has a demonstration of that with PostProductReturnsCreatedStatusCode:
Here is the link
Or you can submit a request to an in-memory server like I mention here:
MSDN Link
The first option is more of a unit test because it doesn't go through the Web API pipeline, but it's also harder to setup and configure.
If you need to test the response body as well, you can use code that looks like this to get the entity that's being sent back:
ObjectContent content = response.Content as ObjectContent;
IList<Models.Activity> responseActivities = content.Value;