Как установить тестовый обратный вызов из кода jni

Вот сценарий, который я получил:

Я написал код Java для приложения для Android, в котором используется библиотека c ++. Таким образом, код Java использует JNI, чтобы иметь возможность использовать библиотеку.
Код Java выполняет вызовы методов на уровне JNI для вызова методов библиотеки. Дело в том, что эти методы не возвращают значения для вызовов, которые я делаю, потому что это для сетевых вещей, поэтому на уровне JNI я получаю некоторые события асинхронно, которые я отправляю в Java с помощью обратных вызовов.
У меня вопрос, как я могу проверить эту функциональность? Я имею в виду, как я могу проверить, что я делаю нативный вызов методов из Java и получаю в обратном вызове, вызванном из JNI, ожидаемые результаты?
Я надеюсь, что я объяснил себя правильно, если вы ничего не понимаете, не стесняйтесь спрашивать.

1

Решение

Вы могли бы, вероятно, настроить обратный вызов как функцию вашего класса JUnit, а затем вызвать свой API из своего JUnit testSmth() функции, затем подождите, пока не произойдет обратный вызов.
В обратном вызове вы уведомляете замок и поэтому ваш testSmth() перестает ждать и продолжает дальше и звонит, скажем, success(),
Ты можешь позвонить lock.wait(timeout) так что если тайм-аут истекает, вы звоните fail() от твоего testSmth()

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]