小编Joh*_*lls的帖子

如何在 Jetpack Compose 中测试带注释的字符串超链接点击?

这个答案演示了如何在带注释的字符串中嵌入链接并使其可单击。这非常有效,并且可以使用正确的 URL 触发点击。但是,我似乎无法编写一个单击带注释的文本来打开链接的测试。有人成功编写过这样的测试吗?我的生产代码与答案中的非常相似。下面是我的测试代码:

@Test
fun it_should_open_terms_of_service_link() {
    val termsOfServiceText = getString(R.string.settings_terms)
    try {
        Intents.init()
        stubAnyIntent()
        composeTestRule.onNode(hasText(termsOfServiceText, substring = true)).performClick()
        assertLinkWasOpened(getString(R.string.settings_terms_link))
    } finally {
        Intents.release()
    }
}
Run Code Online (Sandbox Code Playgroud)

它看起来像是hasText(termsOfServiceText, substring = true)获取整个带注释的字符串节点,而不是仅获取子字符串“服务条款”。因此,单击方法确实被触发,只是不在带注释的字符串中的正确位置触发。如果需要,很乐意提供更多信息。谢谢!

android android-jetpack-compose-text

9
推荐指数
1
解决办法
2795
查看次数

PowerMockito.verifyStatic()问题

我需要使用PowerMockito来测试是否调用了特定的静态方法.我使用以下PowerMockito和JUnit库...

  • powermock-的Mockito-1.6.2-full.jar
  • 基于JUnit 4.12.jar

我在让PowerMockito.verifyStatic()方法正常工作时遇到问题.在下面的代码示例中,我尝试使用@PrepareForTest和mockStatic(),并尝试排除它们.在代码示例中,我包含它们.

测试类:

import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(PowerMockRunner.class)
@PrepareForTest(Test1.class)
public class PowerMockTest {
    @Test
    public void staticVerifyTest() {
        PowerMockito.mockStatic(Test1.class);

        // Test
        PowerMockito.verifyStatic();
        //Test1.staticMethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

被测试类:

public class Test1 {
    public static void staticMethod() {
        System.out.println("Static Method!");
    }
}
Run Code Online (Sandbox Code Playgroud)

测试在运行时通过,但它应该失败,因为从不调用Test1.staticMethod().任何有关这方面的帮助将不胜感激!

java junit powermockito

8
推荐指数
3
解决办法
2万
查看次数