Skip to content
Vladimir Turov edited this page Apr 21, 2020 · 4 revisions

Intro

A Hyperskill project is a set of stages from a technical point of view, where each stage contains a description and tests to check the correctness of the code written by the student.

It is recommended to read the algorithm to write an awesome project on Hyperskill before writing the tests for the stages. Tests are the last stage of project creation and you should coordinate the descriptions of the stages with the Hyperskill team before doing so.

About project

When writing a project, the student has no restrictions on the name of classes, on the name of methods, on interfaces to be implemented, on classes to be inherited. Theoretically, the student can write the whole project code inside the main method but considering the complexity of some projects, it is difficult to achieve. Often, students create a dozen classes to solve a project, and the main method has one line left. Anyway, all we know about the student code is the entry point, the main method.

Testing methods that rely on the existence of some methods and classes are not applicable here (for example, unit testing). We don't know what methods and what classes the student uses, we can't force the student to implement special classes with special methods or implement the provided interfaces so that we can test them with a large number of unit tests.

These classes and interfaces that students should implement prevent them from inventing their own solution for the project, and these methods and classes tell them the right solution. And to become a programmer you have to learn how to come up with solutions yourself.

About testing

So, lyrics aside, as you may have noticed, all Hyperskill projects are tested using the black-box method. Each test runs the main method, it is executed, and then it is verified that everything has gone well. We will discuss the different methods of checking in the following sections.