在WebView[Robolectric]中调用测试Javascript方法
我试图测试是否调用Javascript方法(在WebView中注册为接口)。以下示例在标准应用程序流中执行时有效,但在我尝试像运行机器人测试一样运行时无效。 有人知道为什么吗在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
@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”)
成功=正确
信号。倒计时()
}
}