Minitest is a simple and fast testing library in Ruby used to check if your code works as expected.
Click to reveal answer
beginner
What does the assert method do in Minitest?
The assert method checks if a condition is true. If it is false, the test fails.
Click to reveal answer
beginner
How do you write a simple test method using assert style in Minitest?
Define a method starting with <code>test_</code> inside a class that inherits from <code>Minitest::Test</code>. Use <code>assert</code> inside it to check conditions.
Click to reveal answer
beginner
What happens if an assert condition fails in a Minitest test?
The test stops and reports a failure, showing which assertion did not pass.
Click to reveal answer
beginner
Why is it helpful to use Minitest's assert style for beginners?
Because it uses simple true/false checks, making it easy to understand if code works or not without complex setup.
Click to reveal answer
What does assert check in Minitest?
AIf a variable is nil
BIf a condition is false
CIf a method exists
DIf a condition is true
✗ Incorrect
assert checks if the given condition is true. If not, the test fails.
Which class should your test class inherit from to use Minitest assert style?
ATest::Unit::TestCase
BRSpec::Core::ExampleGroup
CMinitest::Test
DMinitest::Spec
✗ Incorrect
Your test class should inherit from Minitest::Test to use assert style tests.
How should test method names start in Minitest assert style?
Atest_
Bcheck_
Cassert_
Dverify_
✗ Incorrect
Test methods must start with test_ so Minitest can find and run them.
What happens if an assert fails during a test?
AThe test skips to the next one
BThe test fails and reports an error
CThe test passes anyway
DThe program crashes
✗ Incorrect
If an assert fails, Minitest marks the test as failed and shows the failure message.
Which of these is a valid assert statement in Minitest?
Aassert 5 > 3
Bassert_equal 5, 3
Cassert_true 5 > 3
Dassert_false 5 < 3
✗ Incorrect
assert 5 > 3 checks if 5 is greater than 3, which is true, so it passes.
Explain how to write a basic test using Minitest assert style in Ruby.
Think about the class, method name, and assert usage.
You got /3 concepts.
What does the assert method do and what happens if its condition is false?
Focus on assert's role in test success or failure.
You got /3 concepts.
Practice
(1/5)
1. What does the assert method in Minitest do?
easy
A. Checks if a condition is true and fails the test if not
B. Runs the entire test suite automatically
C. Prints the test results to the console
D. Defines a new test case class
Solution
Step 1: Understand the purpose of assert
The assert method is used to verify that a condition is true during a test.
Step 2: What happens if the condition is false?
If the condition is false, the test fails and reports an error.
Final Answer:
Checks if a condition is true and fails the test if not -> Option A
Quick Check:
assert checks truth = B [OK]
Hint: Assert checks if condition is true, else test fails [OK]
Common Mistakes:
Thinking assert runs all tests
Confusing assert with printing output
Believing assert defines test classes
2. Which of the following is the correct syntax to write a test method in Minitest using assert style?
easy
A. function test_example() { assert_equal(5, 2 + 3); }
B. def test_example; assert_equal 5, 2 + 3; end
C. test 'example' do; assert_equal 5, 2 + 3; end
D. test_example() { assert_equal 5, 2 + 3 }
Solution
Step 1: Identify Ruby method syntax for Minitest
In Minitest, test methods start with def test_... and end with end.
Step 2: Check the assert usage inside the method
assert_equal expected, actual is used correctly inside the method.
Final Answer:
def test_example; assert_equal 5, 2 + 3; end -> Option B
Quick Check:
Ruby test method syntax = C [OK]
Hint: Test methods start with def test_ and end with end [OK]
Common Mistakes:
Using non-Ruby syntax like function or braces
Using test do blocks which belong to other frameworks
Missing def or end keywords
3. What will be the output when running this Minitest code?
require 'minitest/autorun'
class SampleTest < Minitest::Test
def test_sum
assert_equal 10, 5 + 5
end
def test_fail
assert 3 > 5, '3 is not greater than 5'
end
end
medium
A. One test passes, one test fails with message '3 is not greater than 5'
B. Both tests pass successfully
C. Syntax error due to incorrect assert usage
D. Both tests fail without any message
Solution
Step 1: Analyze test_sum method
assert_equal 10, 5 + 5 checks if 10 equals 10, which is true, so this test passes.
Step 2: Analyze test_fail method
assert 3 > 5 checks if 3 is greater than 5, which is false, so this test fails and shows the message '3 is not greater than 5'.
Final Answer:
One test passes, one test fails with message '3 is not greater than 5' -> Option A
Quick Check:
assert_equal true, assert false with message = D [OK]
Hint: Check each assert condition true or false to predict pass/fail [OK]
Common Mistakes:
Assuming both tests pass
Confusing assert and assert_equal behavior
Ignoring failure message in assert
4. Identify the error in this Minitest code snippet:
class MyTest < Minitest::Test
def test_check
assert_equal(4, 2 + 2
end
end
medium
A. Test method name does not start with 'test_'
B. Incorrect class inheritance from Minitest::Test
C. Missing closing parenthesis in assert_equal call
D. assert_equal arguments are in wrong order
Solution
Step 1: Check syntax of assert_equal call
The line assert_equal(4, 2 + 2 is missing a closing parenthesis.
Step 2: Verify other parts of the code
Class inheritance and method name are correct, and argument order is correct (expected, actual).
Final Answer:
Missing closing parenthesis in assert_equal call -> Option C
Quick Check:
Syntax errors often from missing parentheses = A [OK]
Hint: Count parentheses carefully in assert calls [OK]