2.3 KiB
Exam Result Generator Node Unit Tests
Unit tests for ExamResultGenerator are implemented in src/g2_2025_grade_calculator_pkg/test/ExamResultGenerator.test.cpp using Google Test and ROS2 test utilities. The tests use a test subscriber node to capture published messages and validate node behavior.
Test Cases
1. ConstructorTest
Description: Verifies that ExamResultGenerator can be created without crashing and proper initialization occurs.
- Test Action: Create ExamResultGenerator node instance
- Expected Result:
- Node created successfully without exceptions
- Node name set to
"exam_result_generator"
2. PublisherCreationTest
Description: Verifies that the exam_results topic publisher is properly configured.
- Test Action: Check topic names and types after node creation
- Expected Result:
/exam_resultstopic is published- Topic uses
g2_2025_interfaces/msg/Exammessage type
3. SubscriberCreationTest
Description: Tests that the node subscribes to the student_course_management topic with correct message type.
- Test Action: Check subscription topics and types
- Expected Result:
/student_course_managementtopic is subscribed- Subscription uses
g2_2025_interfaces/msg/Studentmessage type
4. StudentManagementMessageHandlingTest
Description: Tests the node's ability to handle incoming student management messages without crashing.
- Test Action:
- Publish student management message:
- Student:
"Test Student" - Course:
"Test Course"
- Student:
- Publish student management message:
- Expected Result: Message processed without crashes
5. MultipleStudentMessagesTest
Description: Validates handling of multiple rapid student management messages for robustness testing.
- Test Action:
- Send multiple messages with different student-course combinations
- Students:
["Alice", "Bob", "Charlie"] - Courses:
["Math", "Physics", "Chemistry"]
- Expected Result: All messages processed without crashes or memory issues
6. ExamMessageValidationTest
Description: Captures and validates published exam result messages for correct content and format.
- Test Action: Listen for published exam result messages over 6 seconds
- Expected Result:
- Published grades are within range
[10, 100] - Course names are not empty
- Message format is correct
- Published grades are within range