minitest
所属分类:编程语言基础
开发工具:Crystal
文件大小:0KB
下载次数:0
上传日期:2023-03-24 09:18:39
上 传 者:
sh-1993
说明: Crystal编程语言测试单元
(Test Unit for the Crystal programming language)
文件列表:
.travis.yml (61, 2023-12-18)
CHANGELOG.md (3377, 2023-12-18)
LICENSE (1098, 2023-12-18)
Makefile (161, 2023-12-18)
VERSION (6, 2023-12-18)
shard.yml (204, 2023-12-18)
src/ (0, 2023-12-18)
src/assertions.cr (13181, 2023-12-18)
src/autorun.cr (163, 2023-12-18)
src/diff.cr (3638, 2023-12-18)
src/expectations.cr (6640, 2023-12-18)
src/focus.cr (830, 2023-12-18)
src/minitest.cr (4291, 2023-12-18)
src/reporter.cr (4157, 2023-12-18)
src/result.cr (746, 2023-12-18)
src/runnable.cr (1225, 2023-12-18)
src/spec.cr (1804, 2023-12-18)
src/test.cr (1206, 2023-12-18)
test/ (0, 2023-12-18)
test/assertions_test.cr (11787, 2023-12-18)
test/expectations_test.cr (2677, 2023-12-18)
test/focus_test.cr (2341, 2023-12-18)
test/lifecycle_hooks_test.cr (781, 2023-12-18)
test/runnable_test.cr (5726, 2023-12-18)
test/spec_test.cr (1593, 2023-12-18)
test/test_test.cr (358, 2023-12-18)
# Minitest for Crystal
Unit tests and assertions for the Crystal programming language, using the
fantastic [minitest](https://github.com/seattlerb/minitest) as reference.
## Getting Started
Given that you'd like to test the following class:
```crystal
class Meme
def i_can_has_cheezburger?
"OHAI!"
end
def will_it_blend?
"YES!"
end
end
```
### Unit Tests
Define your tests as methods beginning with `test_`:
```crystal
require "minitest/autorun"
class MemeTest < Minitest::Test
def meme
@meme ||= Meme.new
end
def test_that_kitty_can_eat
assert_equal "OHAI!", meme.i_can_has_cheezburger?
end
def test_that_it_will_not_blend?
refute_match /^no/i, meme.will_it_blend?
end
def test_that_will_be_skipped
skip "test this later"
end
end
```
### Specs
Specs follow the same
[design rationale](https://github.com/seattlerb/minitest/blob/master/design_rationale.rb)
as the original Minitest: `describe` generates classes that inherit from
Minitest::Spec, and `it` generates test methods.
```crystal
require "minitest/autorun"
describe Meme do
let(:meme) { Meme.new }
describe "when asked about cheeseburgers" do
it "must respond positively" do
meme.i_can_has_cheezburger?.must_equal("OHAI!")
end
end
describe "when asked about blending possibilities" do
it "won't say no" do
meme.will_it_blend?.wont_match(/^no/i)
end
end
end
```
You may use assertions in your specs (they'll work the same) or you may prefer the `expect` syntax:
```crystal
expect(meme.i_can_haz_cheezeburger?).must_equal("OHAI!")
expect(meme.will_it_blend?).wont_match(/^no/i)
```
### Run Tests
Eventually run the tests:
```
$ crystal run test/meme_test.cr spec/meme_spec.cr -- --verbose
```
You may filter your tests using an exact test name, or a regexp:
```
$ crystal run test/meme_test.cr -- -n test_that_kitty_can_eat
$ crystal run test/meme_test.cr -- -n /will/
```
When using Minitest::Spec with assertions or the `expect` syntax, you can avoid to taint Object with all the `#must_` and `#wont_` expectations:
```
$ crystal run -Dmt_no_expectations spec/meme_spec.cr
```
## License
Distributed under the MIT License. Please see
[LICENSE](https://github.com/ysbaddaden/minitest.cr/tree/master/LICENSE) for details.
## Credits
- Julien Portalier @ysbaddaden for the Crystal implementation
- Ryan Davis @zenspider and seattle.rb for the original Ruby gem
近期下载者:
相关文件:
收藏者: