RSpec::Memory
Make assertions about memory usage.
Installation
Add this line to your application's Gemfile:
gem 'rspec-memory'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rspec-memory
Finally, add this require statement to the top of spec/spec_helper.rb
require 'rspec/memory'
Usage
Allocating large amounts of objects can lead to memory problems. RSpec::Memory
adds a limit_allocations
matcher, which tracks the number of allocations and memory size for each object type and allows you to specify expected limits.
RSpec.describe "memory allocations" do
include_context RSpec::Memory
it "limits allocation counts" do
expect do
6.times{String.new}
end.to limit_allocations(String => 10) # 10 strings can be allocated
end
it "limits allocation counts (hash)" do
expect do
6.times{String.new}
end.to limit_allocations(String => {count: 10}) # 10 strings can be allocated
end
it "limits allocation size" do
expect do
6.times{String.new("foo")}
end.to limit_allocations(String => {size: 1024}) # 1 KB of strings can be allocated
end
end
Contributing
We welcome contributions to this project.
- Fork it.
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create new Pull Request.