assertFalse(generateRandomId().contains("-"))
Previous answer to the original question:
If the function uses another class to generate the random String, then inject that other class in the constructor of your class:
class MyClass(someOtherClass: SomeOtherClass) {
fun generateRandomId(): String {
val randomString = someOtherClass.generateRandom()
return randomString
}
}
and in your tests you mock SomeOtherClass and all you need to do is to check that whatever SomeOtherClass returns, is returned in your function.
@Test
fun testGenerateRandomId() {
// given
val someOtherClassMock: SomeOtherClass = mock() // 1
val myClass = MyClass(someOtherClassMock) // 2
val randomString = "randomString"
whenever(someOtherClassMock.generateRandom()).thenReturn(randomString) // 3
// when
val result = myClass.generateRandomId()
// then
assertEquals(randomString, result)
}
1 and 3: mock the behaviour of SomeOtherClass with your preferred mocking framework / fake implementation
1 and 2: these lines usually go in the setUp method of your test class
Now if you don't use an external class to generate your random String, you will have to paste your code for further help.