Set up Mockito and simple Unit Test

This commit is contained in:
Keenan D. Buckley
2020-03-28 22:45:44 -06:00
parent e373211f27
commit 489d4a5bff
5 changed files with 62 additions and 4 deletions
+1
View File
@@ -53,6 +53,7 @@ dependencies {
nativeDesktopZip wpi.deps.vendor.jni(wpi.platforms.desktop) nativeDesktopZip wpi.deps.vendor.jni(wpi.platforms.desktop)
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:2.+"
// Enable simulation gui support. Must check the box in vscode to enable support // Enable simulation gui support. Must check the box in vscode to enable support
// upon debugging // upon debugging
@@ -32,7 +32,7 @@ public class RobotContainer {
/* Subsystems */ /* Subsystems */
private final Drive m_robotDrive = new Drive(m_robotMap.leftFrontMotor, m_robotMap.rightFrontMotor, private final Drive m_robotDrive = new Drive(m_robotMap.leftFrontMotor, m_robotMap.rightFrontMotor,
m_robotMap.leftBackMotor, m_robotMap.rightBackMotor, m_robotMap.gyroDrive); m_robotMap.leftBackMotor, m_robotMap.rightBackMotor, m_robotMap.driveTrain, m_robotMap.gyroDrive);
private final LED m_robotLED = new LED(m_robotMap.LEDController); private final LED m_robotLED = new LED(m_robotMap.LEDController);
@@ -37,13 +37,13 @@ public class Drive extends SubsystemBase {
* Add your docs here. * Add your docs here.
*/ */
public Drive(WPI_TalonSRX leftFrontMotor, WPI_TalonSRX rightFrontMotor, WPI_TalonSRX leftBackMotor, public Drive(WPI_TalonSRX leftFrontMotor, WPI_TalonSRX rightFrontMotor, WPI_TalonSRX leftBackMotor,
WPI_TalonSRX rightBackMotor, RobotGyro gyro) { WPI_TalonSRX rightBackMotor, DifferentialDrive driveTrain, RobotGyro gyro) {
m_leftFrontMotor = leftFrontMotor; m_leftFrontMotor = leftFrontMotor;
m_rightFrontMotor = rightFrontMotor; m_rightFrontMotor = rightFrontMotor;
m_leftBackMotor = leftBackMotor; m_leftBackMotor = leftBackMotor;
m_rightBackMotor = rightBackMotor; m_rightBackMotor = rightBackMotor;
m_driveTrain = new DifferentialDrive(m_leftFrontMotor, m_rightFrontMotor); m_driveTrain = driveTrain;
m_gyro = gyro; m_gyro = gyro;
} }
@@ -63,6 +63,14 @@ public class Drive extends SubsystemBase {
m_driveTrain.arcadeDrive(move, steer); m_driveTrain.arcadeDrive(move, steer);
} }
/**
* Add your docs here.
*/
public void tankDriveWithInput(double leftMove, double rightMove) {
m_leftFrontMotor.set(leftMove);
m_rightFrontMotor.set(rightMove);
}
/** /**
* Add your docs here. * Add your docs here.
*/ */
+9 -1
View File
@@ -117,7 +117,15 @@ public class RobotGyro extends GyroBase {
* @return heading from -180 to 180 degrees * @return heading from -180 to 180 degrees
*/ */
public double getHeading() { public double getHeading() {
return Math.IEEEremainder(getAngle(), 360); return getHeading(getAngle());
}
/**
* Gets an absolute heading of the robot
* @return heading from -180 to 180 degrees
*/
public double getHeading(double angle) {
return Math.IEEEremainder(angle, 360);
} }
/** /**
@@ -0,0 +1,41 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2018-2019 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
/*----------------------------------------------------------------------------*/
package frc4388.robot.utility;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import com.ctre.phoenix.sensors.PigeonIMU;
import edu.wpi.first.wpilibj.*;
import frc4388.utility.RobotGyro;
import org.junit.*;
/**
* Add your docs here.
*/
public class GyroHeadingTest {
@Test
public void testConstructor() {
// Arrange
RobotGyro gyro = new RobotGyro(mock(PigeonIMU.class));
// Act & Assert
assertEquals(-90, gyro.getHeading(270), 0.0001);
assertEquals(-45, gyro.getHeading(315), 0.0001);
assertEquals(-60, gyro.getHeading(-60), 0.0001);
assertEquals(30, gyro.getHeading(30), 0.0001);
assertEquals(0, gyro.getHeading(0), 0.0001);
assertEquals(180, gyro.getHeading(180), 0.0001);
assertEquals(-180, gyro.getHeading(-180), 0.0001);
assertEquals(97, gyro.getHeading(1537), 0.0001);
assertEquals(99, gyro.getHeading(-2781), 0.0001);
}
}