我正在尝试为具有回调函数作为参数的类编写一些单元测试用例(请参见下面的代码)
class NetworkApi(private val url: String) {
fun getToken(listener: (String) -> Unit) {
Thread(Runnable {
Thread.sleep(2000)
if (TextUtils.isEmpty(url)) listener("")
else listener("Dummy token")
}).start()
}
}
,单元测试用例是
@RunWith(AndroidJUnit4::class)
class NetworkApiTest {
var networkApi: NetworkApi? = null
@Test
fun testEmptyToken() {
networkApi = NetworkApi("")
networkApi?.getToken {
Assert.assertThat(it, isEmptyOrNullString())
}
}
}
每当我运行此测试用例时,无论我发送什么值,我都会一直获得成功。我知道我没有采取确切的方法。 有人可以帮我为JUnit中的类编写单元测试用例。
答案 0 :(得分:2)
问题是测试在调用回调之前完成,并且add_filter('manage_edit-comments_columns', 'my_add_comments_columns');
function my_add_comments_columns($my_cols) {
$temp_columns = array(
'phone' => 'Phone'
);
$my_cols = array_slice($my_cols, 0, 3, true) + $temp_columns + array_slice($my_cols, 3, NULL, true);
return $my_cols;
}
add_action('manage_comments_custom_column', 'my_add_comment_columns_content', 10, 2);
function my_add_comment_columns_content($column, $comment_ID) {
global $comment;
switch ($column) :
case 'phone' : {
echo get_comment_meta($comment_ID, 'phone', true);
break;
}
endswitch;
}
在错误的线程中。
您必须将结果从回调复制回主线程。使用CompletableFuture
。
如果您希望在一段时间后无法通过测试,可以使用带有超时值的assert
方法:
get