Description
Overview
It would be nice if you could write something like this in Kotlin when working with JUnit Jupiter.
@TestFactory
fun `dynamic tests returned as Kotlin sequence`() = generateSequence(0) { it + 2 }
.map { dynamicTest("$it should be even") { assertTrue(it % 2 == 0) } }
.take(10)
Currently you have to add .toIterable()
as an extra line to make it work with JUnit Jupiter.
The Kotlin Sequence
class is an example of an iterator providing class, but it is not an Iterable
. That's why it does not work as return type for @TestFactory
methods at the moment.
A benefit of adding this at this low level is that, Kotlin Sequences, or any other Iterator
or Spliterator
providing class can now also be used in other JUnit Jupiter methods where an object from an annotated method needs to be converted to a stream.
I have an implementation for it ready. see:
All tests still pass.
I would like to contribute to JUnit 5 and make a pull request for this branch, but I don't have push permission yet for a feature branch in the JUnit 5 project.
Could you please be so kind to take a look at the suggestion I provided?
Thanks in advance! I'm awaiting your response :)
Deliverables
- Adding support for converting iterator providing classes to a stream in
org.junit.platform.commons.util.CollectionUtils
. - Adding support for converting
Spliterator
providing classes to a stream inorg.junit.platform.commons.util.CollectionUtils
.
Metadata
Metadata
Assignees
Type
Projects
Status