Switching to RSpec for testing

This is the first installment of the potential switch, it illustrates the format of model testing. If anyone has any input on how I can make these tests even better, while maintaining readability, I would really appreciate the help. I purposely only tested one method so that we can focus more on the style versus what is actually being tested. I'm hoping to decide on a style before this PR is merged.  @ferrous26 @zhangsu
Looking good!! Just some minor comments.

I think it's fine for DSL like RSpec to just indent these method chaining lines once (here and everywhere else) so that it's more width-efficient.
```ruby
allow(assignment).to receive(:add_group)
  .with(group_name)
  .and_raise(...)
```
Another style:
```ruby
allow(assignment).to \
  receive(:add_group).with(group_name)
    .and_raise(...)
```