In most circumstances I would use the same pattern (store the value, modify, restore). However in this instance it is expected that this Array is blank before every test. If it wouldn't be blank, it's another test leaking it's state. It's better to fail if this happens than to continue on with the leak. The difference I see is that `deliveries` is an array specifically for testing. It's promise is:
> An array containing all the emails that you send during your test.

We expect it to be blank when we start. Hence I would suggest to simply do:

```ruby
ensure
  BaseMailer.deliveries.clear
```