This is an area I've been a little uncomfortable with. There seems two be a couple of options though:
1)
https://github.com/avh4/elm-testable - I haven't used it but it seems that it provides replacement commands that you can run assertions against. This approach seems limited as it only solves the problem for a predefined set of commands.
2) Another approach, which I also haven't tried yet: Instead of returning commands from your update, model the effects yourself and only convert them into commands at the last minute when returning them from your main/update. For instance you might return MyEffects.request(endpoint, verb, payload, GoodResponse, BadResponse). This would allow you to just use assertEquals on the effects returned from your update. Something that would need to be taken care of though is a replacement for Cmd.map.