Я пытаюсь имитировать некоторые интерфейсы с помощью Mockk.
В какой-то момент мне нужно создать макет, реализующий 2 интерфейса.
Например, используя Moq в C# , Я могу сделать это :
// implementing multiple interfaces in mock
var foo = new Mock<IFoo>();
var disposableFoo = foo.As<IDisposable>();
// now IFoo mock also implements IDisposable :)
disposableFoo.Setup(df => df.Dispose());
Есть ли способ сделать это с помощью Mockk?
Если я попробую что-то вроде
val foo : IFoo = mockk()
every { (foo as AutoCloseable).close() } just Runs
Я получаю следующую ошибку (что имеет смысл):
com.example.IFoo$Subclass0 cannot be cast to java.lang.AutoCloseable
Я видел в документации, что могу указать дополнительные интерфейсы с помощью spyk
, но я не хочу использовать здесь реальную реализацию.
Есть способ сделать это? Есть ли другой подход?