В настоящее время я использую онлайн-систему, работающую в Google App Engine, чтобы студенты могли практиковаться в написании кода на python.Система основана на codingbat Ника Парланте и публичной версии Beanshell , работающей на appengine.
Я хотел бы расширить нашу систему для поддержки Java.В нашей нынешней системе функция документооборота Python позволяет инструкторам очень просто набрать серию объявлений и тестов переменных, которые затем можно выполнить для кода, представленного студентом.Это очень интуитивно понятно для инструкторов, что важно для обеспечения того, чтобы многие люди писали тесты.
Как заменить следующие комментарии кодом Java для оценки и выполнения тестов в Java?
String solution = “a=1;”;
solution += “b=1;”;
String problem = “self.assertEqual(a,1);”;
problem += “c=3;”;
problem += “self.assertEqual(b,2);”;
//eval the solution string
//eval the problem string possibly wrapped by additional junit or other Java code.
//results = Run all the tests
System.out.println(“Test expected received result”);
//For result in results
// print test, expected, received, result(pass/fail)
Требуемый вывод:
Test expected received result
self.assertEqual(a,1) 1 1 pass
self.assertEqual(b,2) 2 1 fail
В идеале любое количество тестов может быть включено в приведенную выше строку задачи, и любое количество операторов Java может быть включено в строку решения, чтобыпройти тесты, включенные в строку задачи.