Continuing the theme of showcasing tasks that emulate the real dev experience, we look at a file system task in this episode. In this type of task, all of the code lives in an extensible tree of files, similar to the structure of a web app.
For a standard algorithmic task, the tests normally supply a sample input and an expected output, but the tests for this type of task are stored in files, and administered as unit tests (again, similar to how we might test the functionality of a web app). This allows for more flexibility in the types of tests we can write; for example, a unit test might instantiate a class, invoke some of the resulting object’s methods, and then compare its properties to an expected result.
The unit tests can be designed to each check a specific function or edge case, thus providing the candidate with clear feedback, and providing the recruiter with meaningful data. And like most other tasks, half of the tests are hidden to the candidate in order to prevent the possibility of cheating, reducing noise or inaccuracy in the results of the automated assessment.