Let's not hard-code our logins and passwords - anyone temporarily changing them to run the tests always runs the risk of forgetting to change them back again before git committing their other changes.

ActiveMerchant has a feature for loading sensitive supporting gateway configuration options.

If you add this to the test/fixtures.yml file:
```yaml
commercegate:
  login: "123456"
  password: "password"
  site_id: "10000012345"
  offer_id: "10000012345"
  card_number: "4111111111111111"
```

You will then in your test code be able to call `fixtures(:commercegate)` and get back a hash of your sensitive info.

When developing locally, you can add a file in ~/.active_merchant/fixtures.yml (note that directory is in your home directory, then inside a DOT active_merchant directory) where you can repeat that YAML but override those default dummy values with your real confidential values.

```ruby
    @gateway = CommercegateGateway.new(
      :login => fixtures(:commercegate).fetch(:login),
      :password => fixtures(:commercegate).fetch(:password)
    )
```

I've suggested using Hash#fetch in this case as it would be a mis-configuration if the key was not specified and would prefer the test raised an error at that point if the key wasn't specified in the fixtures.yml file.