Learn How to Auto-Grade
Auto-grading is a powerful tool that saves teachers time and provides students with feedback regarding the correctness of their solution before they submit it for a grade.
All of this auto-grading magic can be accomplished with unit testing -- test whether parts (units) of a students code work properly by asserting that they meet certain conditions (equal to a predetermined value, produce a result in a given range, etc.).
New to Unit Testing? Let's do a brief review.
TODO
The basic building blocks of unit testing are test cases — single scenarios that must be set up and checked for correctness.
The simplest
TestCase
subclass will simply implement a test method (i.e. a method whose name starts with test
) in order to perform specific testing code:def test_default_case(self):
# Your test case logic here (replace the example assertion below)
# You may also rename this to any function in the form of 'test_your_test_name(self):'
self.assertTrue(True)
Tests can be numerous, and their set-up can be repetitive. Luckily, we can factor out set-up code by implementing a method called
setUp()
, which the testing framework will automatically call for every single test we run:def setUp(self):
# Setup code here (if required, replace the 'pass')
pass
def tearDown(self):
# Teardown code here (if required, replace the 'pass')
pass
TODO
@Test
public void testDefaultCase() {
// You may rename this method to better suit the purpose of your test case
// Your test case logic here
}
@Before
public void setUp() {
// Setup code here (if required)
}
@After
public void tearDown() {
// Teardown code here (if required)
}
Joe Mazzone, former Computer and Software Engineering instructor at William M. Davies, Jr. Career and Technical High School in Lincoln, Rhode Island.
Joe is now a Senior Product Manager/Product Development Lead at John Wiley & Sons, Inc., working on Coding Rooms and zyBooks.
Last modified 1mo ago