<commit_before>---
owner_slack: "#govuk-developers"
title: 'Which gem to use'
section: Patterns & Style Guides
layout: manual_layout
parent: "/manual.html"
last_reviewed_on: 2019-01-22
review_in: 6 months
---

## Testing a Ruby project

- Projects should use [RSpec](https://github.com/rspec/rspec)
- Projects must use [govuk_test](https://github.com/alphagov/govuk_test) for test dependencies

Some projects use MiniTest. If you're in the position, you should convert these tests into RSpec tests, but never mix RSpec and MiniTest in projects.

## Linting Ruby code

- Projects must use [govuk-lint](https://github.com/alphagov/govuk-lint).

See [Lint your Ruby code with govuk-lint](/manual/lint-ruby-code.html) for more instructions.<commit_msg>Specify that apps should use govuk_sidekiq and govuk_message_queue_consumer<commit_after>---
owner_slack: "#govuk-developers"
title: 'Which gem to use'
section: Patterns & Style Guides
layout: manual_layout
parent: "/manual.html"
last_reviewed_on: 2019-01-22
review_in: 6 months
---

## Testing a Ruby project

- Projects should use [RSpec](https://github.com/rspec/rspec)
- Projects must use [govuk_test](https://github.com/alphagov/govuk_test) for test dependencies

Some projects use MiniTest. If you're in the position, you should convert these tests into RSpec tests, but never mix RSpec and MiniTest in projects.

## Linting Ruby code

- Projects must use [govuk-lint](https://github.com/alphagov/govuk-lint).

See [Lint your Ruby code with govuk-lint](/manual/lint-ruby-code.html) for more instructions.

## Background processing

- Projects must use [govuk_sidekiq](https://github.com/alphagov/govuk_sidekiq)

## Using RabbitMQ

- Projects must use [govuk_message_queue_consumer](https://github.com/alphagov/govuk_message_queue_consumer)
{'fraction_non_alphanumeric': 0.10931399888455103, 'fraction_numerical': 0.010039040713887339, 'mean_word_length': 4.940397350993377, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '657431', 'n_tokens_mistral': 608, 'n_tokens_neox': 568, 'n_words': 174}