crotest alternatives and similar shards
Based on the "Testing" category.
Alternatively, view crotest alternatives based on common mentions on social networks and blogs.
-
spec2.cr
Enhanced `spec` testing library for [Crystal](http://crystal-lang.org/). -
LuckyFlow
Automated browser tests for web applications. Similar to Ruby's Capybara. -
power_assert.cr
PowerAssert provides the more powerful assertion to you. -
timecop.cr
Mock with `Time.now` with the power of time travel, time freeze and time scale. -
microtest
Small test framework, because it has power asserts as the only assertion. -
mock
Doubles (stubs and mocks) library for Crystal, inspired by the API of rspec-mocks -
spec2-mocks
This library connects spec2.cr and mocks.cr, effectively enabling 'have_received' expectation for spec2. -
webdriver_pump
Page Object Model library for Crystal. A port (kind of) of Ruby's WatirPump -
hashr
Hashr is a tiny library makes test on JSON response easier, and can also be used as a models object.
InfluxDB - Power Real-Time Data Analytics at Scale
Do you think we are missing an alternative of crotest or a related project?
Popular Comparisons
README
crotest
A tiny and simple test framework for Crystal with common assertions and no pollution into Object
class.
NOTE: This library was built during the Citrusybte's Investment Day program
Example
require "crotest"
describe "DSL" do
it "defines small test cases" do
assert true
end
describe "nested describes for a better readability" do
it "has only a few assertions" do
var = false
reject var
assert_equal false, var
assert_raise Exception do
raise Exception.new("Boom!")
end
end
end
pending "tests are defined without a block"
pending "tests can also be defined with a block, which will not be executed" do
fail "This won't be executed :)"
end
end
Installation
Add this to your application's shard.yml
:
dependencies:
crotest:
github: emancu/crotest
Usage
require "crotest"
Run your tests with crystal spec
.
Assertions
assert
reject
assert_equal
assert_raise
Custom assertions
Extend the assertions used by Crotest
is really easy.
You need to open the module Crotest::Assertions
and add your assertions like the example below:
require "crotest"
module Crotest::Assertions
macro assert_greater_than_4(value, file = __FILE__, line = __LINE__)
assert {{value}} > 4, "#{{{value}}} <= 4", {{file}}, {{line}}
end
end
it "supports my custom assertion" do
assert_greater_than_4 5
end
Before/After blocks
If you need to run code before or after each test, declare each block like in the example below.
Remember to define before/after
blocks before the corresponding it
blocks.
Given this is not dynamically evaluated, we must define at the beginning of the file or describe
block.
before do
# First block to be executed
end
after do
# Fifth and last block to be executed
end
describe "a nested context" do
before do
# Second block to be executed
end
after do
# Fourth block to be executed
end
it "executes the before blocks and" do
# Third block to be executed
end
end
Contributing
- Fork it ( https://github.com/emancu/crotest/fork )
- 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 a new Pull Request
Contributors
- emancu Emiliano Mancuso - creator, maintainer