testunit-skill
Generates Test::Unit tests in Ruby. Classic xUnit-style testing with assert methods and test case classes. Use when user mentions "Test::Unit", "assert_equal Ruby", "Ruby test-unit". Triggers on: "Test::Unit", "Ruby test-unit", "assert_equal Ruby" (not RSpec).
What this skill does
# Test::Unit Ruby Skill
## Core Patterns
### Basic Test
```ruby
require 'test/unit'
class TestCalculator < Test::Unit::TestCase
def setup
@calc = Calculator.new
end
def test_addition
assert_equal(5, @calc.add(2, 3), "2 + 3 should equal 5")
end
def test_subtraction
assert_equal(1, @calc.subtract(3, 2))
end
def test_division_by_zero
assert_raise(ZeroDivisionError) { @calc.divide(10, 0) }
end
def test_float_division
assert_in_delta(3.33, @calc.divide(10, 3), 0.01)
end
def teardown
# cleanup
end
end
```
### Assertions
```ruby
assert_equal(expected, actual, message = nil)
assert_not_equal(unexpected, actual)
assert_true(value)
assert_false(value)
assert_nil(value)
assert_not_nil(value)
assert_instance_of(klass, obj)
assert_kind_of(klass, obj)
assert_respond_to(obj, :method_name)
assert_match(/pattern/, string)
assert_no_match(/pattern/, string)
assert_include(collection, item)
assert_not_include(collection, item)
assert_empty(collection)
assert_not_empty(collection)
assert_raise(ErrorClass) { block }
assert_nothing_raised { block }
assert_in_delta(expected, actual, delta)
assert_operator(value, :>, 5)
assert_send([obj, :method, arg])
assert_block("message") { condition }
```
### Test Fixtures
```ruby
class TestDatabase < Test::Unit::TestCase
def self.startup
# Once before all tests in class
@@db = Database.connect('test')
end
def self.shutdown
# Once after all tests in class
@@db.disconnect
end
def setup
# Before each test
@@db.begin_transaction
end
def teardown
# After each test
@@db.rollback
end
end
```
### Test Ordering and Naming
```ruby
class TestUserService < Test::Unit::TestCase
# Methods must start with 'test_'
def test_create_user
user = UserService.create('Alice', '[email protected]')
assert_not_nil(user)
assert_equal('Alice', user.name)
end
def test_find_user_by_email
user = UserService.find_by_email('[email protected]')
assert_instance_of(User, user)
end
end
```
## Setup: `gem install test-unit`
## Run: `ruby test/test_calculator.rb` or `ruby -Itest -e "Dir.glob('test/**/test_*.rb').each{|f| require f}"`
## Autodiscovery: `testrb test/` (with test-unit gem)
## Deep Patterns
For advanced patterns, debugging guides, CI/CD integration, and best practices,
see `reference/playbook.md`.
Related in unit-testing
phpunit-skill
IncludedGenerates PHPUnit tests in PHP. Covers assertions, data providers, mocking, and test doubles. Use when user mentions "PHPUnit", "TestCase", "assertEquals", "PHP test". Triggers on: "PHPUnit", "TestCase PHP", "assertEquals PHP", "PHP unit test".
karma-skill
IncludedGenerates Karma test runner configurations for browser-based JavaScript testing. Works with Jasmine, Mocha, or QUnit. Use when user mentions "Karma", "karma.conf.js", "browser test runner". Triggers on: "Karma", "karma.conf", "karma test runner", "browser-based JS test".
unittest-skill
IncludedGenerates Python unittest tests. Built-in testing framework with TestCase, setUp/tearDown, and assertion methods. Use when user mentions "unittest", "TestCase", "self.assertEqual", "Python unittest". Triggers on: "unittest", "TestCase", "self.assertEqual", "Python unittest" (not pytest).
testng-skill
IncludedGenerates TestNG tests in Java with groups, data providers, parallel execution, XML suite configuration, and listeners. Use when user mentions "TestNG", "@DataProvider", "testng.xml", "groups". Triggers on: "TestNG", "@DataProvider", "testng.xml", "TestNG suite", "parallel tests Java".
jest-skill
IncludedGenerates Jest unit and integration tests in JavaScript or TypeScript. Covers mocking, snapshots, async testing, and React component testing. Use when user mentions "Jest", "describe/it/expect", "jest.mock", "toMatchSnapshot". Triggers on: "Jest", "expect().toBe()", "jest.mock", "snapshot test", "JS test", "React test".
junit-5-skill
IncludedGenerates production-grade JUnit 5 unit and integration tests in Java. Covers assertions, parameterized tests, lifecycle hooks, mocking with Mockito, and nested tests. Use when user mentions "JUnit", "JUnit 5", "@Test", "assertEquals", "Assertions", "Java unit test". Triggers on: "JUnit", "@Test", "assertEquals", "Java test", "unit test Java".