1. First step of the test-unit
Let’s getting start test-unit
.
This document creates an example gem package called sample
with the test-unit
testing framework.
2. Install bundler and test-unit.
- First, install the
bundler
gem for generating gem template. - Second, install the
test-unit
itself.
gem install bundler
gem install test-unit
The gem list
command output installed packages.
You will find the following lines.
gem list
...
bundler (2.6.3, default: 2.6.2)
...
test-unit (3.6.8, 3.6.7)
3. Create gem template.
Next, create a gem template using bundler
command.
This command generates package skeleton with a testing framework.
The bundle gem -t test-unit sample
command will generate a gem template with the test-unit
testing framework.
4. Execute test.
The rake test
command execute test scenarios in the test
directory.
Now it tries to two tests. One will success the other one fails.
$ rake test
Loaded suite /path/to/ruby/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/rake_test_loader
Started
F
================================================================================
Failure: test: something useful(SampleTest)
/path/to/sample/test/sample_test.rb:13:in 'block in <class:SampleTest>'
10: end
11:
12: test "something useful" do
=> 13: assert_equal("expected", "actual")
14: end
15: end
<"expected"> expected but was
<"actual">
diff:
? expected
? a ual
? ???? ??
================================================================================
Finished in 0.013737 seconds.
--------------------------------------------------------------------------------
2 tests, 2 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
50% passed
--------------------------------------------------------------------------------
145.59 tests/s, 145.59 assertions/s
rake aborted!
Command failed with status (1)
Tasks: TOP => test
(See full trace by running task with --trace)
5. Create original tests.
Let’s create your original tests with the following rules.
- Create a test file in the
test
directory. - The file needs suffix
xxx_test.rb
. - You can put test file into the subdirectory like
test/sub
.
Example directory layout.
test
|-- sample_test.rb
|-- sub
| `-- sample2_test.rb
`-- test_helper.rb
Example test file in the sub directory.
require 'test_helper'
module Sub
class Sample2Test < Test::Unit::TestCase
def test_that_it_has_a_version_number
refute_nil ::Sample::VERSION
end
def test_it_does_something_useful
assert false
end
end
end
6. For more information
Let’s read the official document.