kotlin icon indicating copy to clipboard operation
kotlin copied to clipboard

[Epic] Track improvement checklist

Open dector opened this issue 6 years ago • 10 comments

Things I would suggest to do:

  • [x] Check open PRs and take some actions for each (close/merge/define action points).
  • [x] Check open issues and take some actions for each (close/define action points).
  • [x] Check exercises and fix missing source files.
  • [x] Update base template (implemented here):
    • Update gradle.
    • _(Requires further discussion) Use Jupiter (JUnit5) as a testing platform. _
    • (Requires further discussion) Use TestOrder + fail-fast strategy to improve testing experience for students.
  • [ ] Fix issues from report.
  • [ ] I'm exploring other ways to improve tooling for exercises (e.g. I believe it's possible to make testing more lightweight without Gradle).

dector avatar Oct 30 '19 09:10 dector

cc: @mikegehard

What do you think?

dector avatar Oct 30 '19 09:10 dector

Thanks @dector

I totally agree with the first 3 bullet items. I would love to get to a place where both PRs and issues are empty.

Updating gradle is another good one.

I'd like to talk more about Jupiter and TestOrder. I'm unfamiliar with Jupiter and would love to understand your thoughts on improving the testing experience.

mikegehard avatar Oct 30 '19 16:10 mikegehard

I'd like to talk more about Jupiter and TestOrder. I'm unfamiliar with Jupiter and would love to understand your thoughts on improving the testing experience.

I'm actually talking about Junit 5. :) You can read more about it here.

1.1. What is JUnit 5?

Unlike previous versions of JUnit, JUnit 5 is composed of several different modules from three different sub-projects.

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

For now all test cases except one are marked as @Ignored and that requires student to open test file and remove this annotation one-by-one. I think it might be improved: with predefined test order and fail-fast enabled student will see only one failed test-result at a time (and can concentrate on working on it) but there will be no need to edit test cases files.

dector avatar Oct 30 '19 18:10 dector

Ah yes...I totally agree that upgrading to JUnit 5 would be a great idea.

And now I understand you thoughts on the pre-defined test order. Yes that would be an interesting experiment to figure out if that improves student experience because they don't have to remove the @Ignore.

The TDD purist in me has a concern exposing students to the @Order annotation. That concern is that they will see that early in their careers and will then start to use it outside of Exercism. By fixing order in a test suite, when doing TDD, you can cause some subtle bugs because the test can rely on existing state.

That said, we have had some issues in the past with folks not fully reading the instructions and not removing the @Ignore annotation so they didn't implement the full solution.

For now, what if we just implemented JUnit 5 and came back to the "student experience" question. Might be something we want to talk more widely about to get more feedback.

Maybe once we get the issues area cleaned up we can start a discussion issue?

mikegehard avatar Oct 30 '19 19:10 mikegehard

I thought about using order in education purposes as a ladder for making steps from simpler test-cases to more difficult. But in general, we can use just fail-fast approach.

Maybe once we get the issues area cleaned up we can start a discussion issue?

Sounds good for me.

dector avatar Oct 30 '19 20:10 dector

👍

mikegehard avatar Oct 30 '19 20:10 mikegehard

Also, as I see v3 tracks gonna dive dipper into idiomatic languages. v2 are more about idiomatic syntax.

Also there are many Kotlin testing frameworks: starting from classic JUnit-family to Spek or kotlintest that allows to write more readable / better structured tests.

dector avatar Oct 30 '19 20:10 dector

Not sure I follow...

mikegehard avatar Oct 30 '19 20:10 mikegehard

Issue #310 is an existing issue for adding stub files.

mikegehard avatar Nov 05 '19 16:11 mikegehard

Thank you. Will take a look.

dector avatar Nov 05 '19 18:11 dector