在WebView[Robolectric]中调用测试Javascript方法

在WebView[Robolectric]中调用测试Javascript方法,javascript,android,kotlin,junit,robolectric,Javascript,Android,Kotlin,Junit,Robolectric,我试图测试是否调用Javascript方法(在WebView中注册为接口)。以下示例在标准应用程序流中执行时有效,但在我尝试像运行机器人测试一样运行时无效。 有人知道为什么吗 @RunWith(RobolectricTestRunner::class) @Config(sdk = [Build.VERSION_CODES.O_MR1]) class ExampleUnitTest { private lateinit var activityController: ActivityCo

我试图测试是否调用Javascript方法(在WebView中注册为接口)。以下示例在标准应用程序流中执行时有效,但在我尝试像运行机器人测试一样运行时无效。 有人知道为什么吗

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.O_MR1])
class ExampleUnitTest {

    private lateinit var activityController: ActivityController<Activity>
    private lateinit var activity: Activity
    private lateinit var webView: WebView

    val signal = CountDownLatch(1)
    var success = false

    @Before
    fun setUp() {
        activityController = Robolectric.buildActivity(Activity::class.java)
        activity = activityController.get()
        webView = WebView(activity)
        webView.settings.javaScriptEnabled = true
        webView.addJavascriptInterface(this, "example")
    }

    @Test
    fun getUuid() {
        System.out.println("Ping")
        webView.evaluateJavascript("example.pong();", null);
        signal.await(10, TimeUnit.SECONDS)
        Assert.assertTrue(success)
    }

    @JavascriptInterface
    fun pong() {
        System.out.println("Pong")
        success = true
        signal.countDown()
    }
}
@RunWith(RobolectrictTestRunner::class)
@配置(sdk=[Build.VERSION\u CODES.O\u MR1])
类示例单元测试{
私有lateinit var activityController:activityController
私有lateinit变量活动:活动
私有lateinit var webView:webView
val信号=倒计时锁存器(1)
var成功=错误
@以前
趣味设置(){
activityController=Robolectric.buildActivity(Activity::class.java)
activity=activityController.get()
webView=webView(活动)
webView.settings.javaScriptEnabled=true
addJavascriptInterface(此“示例”)
}
@试验
fun getUuid(){
System.out.println(“Ping”)
evaluateJavascript(“example.pong();”,null);
等待信号(10,时间单位秒)
Assert.assertTrue(成功)
}
@JavascriptInterface
fun pong(){
系统输出打印项次(“Pong”)
成功=正确
信号。倒计时()
}
}