Split documentation into three folders: Architecture, Testing and Installation. Rework and expand architecture.md alongside interfaces.md Split all parts to do with testing from Architecture md's into Test md's Add parameter to ExamResultGenerator node documentation
2.3 KiB
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