Windows support included
This commit is contained in:
77
windows/generate-drive-test.bat
Normal file
77
windows/generate-drive-test.bat
Normal file
@@ -0,0 +1,77 @@
|
||||
@echo off
|
||||
REM Generate DriveTest.java
|
||||
setlocal
|
||||
|
||||
set "PROJECT_DIR=%~1"
|
||||
|
||||
(
|
||||
echo package robot.subsystems;
|
||||
echo.
|
||||
echo import org.junit.jupiter.api.Test;
|
||||
echo import static org.junit.jupiter.api.Assertions.*;
|
||||
echo.
|
||||
echo /**
|
||||
echo * Unit tests for Drive subsystem.
|
||||
echo * Uses inline mock - no FTC SDK required.
|
||||
echo */
|
||||
echo class DriveTest {
|
||||
echo.
|
||||
echo /**
|
||||
echo * Simple mock implementation of Drive.Hardware.
|
||||
echo * Captures method calls for verification in tests.
|
||||
echo */
|
||||
echo static class MockHardware implements Drive.Hardware {
|
||||
echo double lastForward = 0;
|
||||
echo double lastStrafe = 0;
|
||||
echo double lastRotate = 0;
|
||||
echo double heading = 0;
|
||||
echo int setPowersCallCount = 0;
|
||||
echo.
|
||||
echo @Override
|
||||
echo public double getHeading^(^) {
|
||||
echo return heading;
|
||||
echo }
|
||||
echo.
|
||||
echo @Override
|
||||
echo public void setPowers^(double forward, double strafe, double rotate^) {
|
||||
echo this.lastForward = forward;
|
||||
echo this.lastStrafe = strafe;
|
||||
echo this.lastRotate = rotate;
|
||||
echo this.setPowersCallCount++;
|
||||
echo }
|
||||
echo }
|
||||
echo.
|
||||
echo @Test
|
||||
echo void testDriveCallsSetPowers^(^) {
|
||||
echo MockHardware mock = new MockHardware^(^);
|
||||
echo Drive drive = new Drive^(mock^);
|
||||
echo.
|
||||
echo drive.drive^(0.5, 0.3, 0.1^);
|
||||
echo.
|
||||
echo assertEquals^(1, mock.setPowersCallCount, "setPowers should be called once"^);
|
||||
echo }
|
||||
echo.
|
||||
echo @Test
|
||||
echo void testStopSetsZeroPower^(^) {
|
||||
echo MockHardware mock = new MockHardware^(^);
|
||||
echo Drive drive = new Drive^(mock^);
|
||||
echo.
|
||||
echo drive.stop^(^);
|
||||
echo.
|
||||
echo assertEquals^(0.0, mock.lastForward, 0.001^);
|
||||
echo assertEquals^(0.0, mock.lastStrafe, 0.001^);
|
||||
echo assertEquals^(0.0, mock.lastRotate, 0.001^);
|
||||
echo }
|
||||
echo.
|
||||
echo @Test
|
||||
echo void testGetPoseReturnsNonNull^(^) {
|
||||
echo MockHardware mock = new MockHardware^(^);
|
||||
echo Drive drive = new Drive^(mock^);
|
||||
echo.
|
||||
echo assertNotNull^(drive.getPose^(^), "Pose should never be null"^);
|
||||
echo }
|
||||
echo }
|
||||
) > "%PROJECT_DIR%\src\test\java\robot\subsystems\DriveTest.java"
|
||||
|
||||
endlocal
|
||||
exit /b 0
|
||||
Reference in New Issue
Block a user