3 ms·
Can you write up the Java version too? I don't think it would be significantly more terse. Maybe you'd lose the: for name, tc := range tests { t.Run(
by mrkeen 3y ago
Can you write up the Java version too? I don't think it would be significantly more terse.
Maybe you'd lose the:
for name, tc := range tests {
t.Run(name, func(t *testing.T) {
But gain:
@ParameterizedTest
- nowimaman 3y agoSpock is the most readable framework for testing java IMO, their data driven testing is great, but it might not be a fair comparison because it's written with groovy: def 'split #input with sep #sep should return #expected'() { expect: Split(input, sep) == expected where: testCase | input | sep || expected "simple" | "a/b/c" | "/" || ['a', 'b', 'c'] "wrong sep" | "a/b/c" | "," || ['a/b/c'] "no sep" | "abc" | "/" || ['abc'] "trailing sep"| "a/b/c/"| "/" || ['a', 'b', 'c'] }
- DarkNova6 3y agoPlaceholder Will do once I’m back from work, ~ 3h
- DarkNova6 3y agoAlright, it's not quite as concise as I remember because you can't use arrays in a CSVSource. But I still argue that it is a vast improvement. You have your data + test condition and almost nothing on top. Code: https://pastebin.com/14hLe6Fz https://pastebin.com/14hLe6Fz And now all of the horribleness of requiring a struct definition + defining the data inside your method + for loop is gone. The intend is clear and based upon your liking you can move the test data into a separate class, at the end of the file or next to the test case. PS: I just realized you can't edit your post after 1+ hours have passed!