为什么在assertTrue()中使用matches()时收到AssertionFailedError?

问题描述 投票:0回答:1
@Test
void hasCurrentProgress()
{
    YTVideo yt = new YTVideo();
    yt.setUrl("https://www.youtube.com/watch?v=U6Z8FkjGEb4&t=2s");
    assertTrue(yt.getUrl().matches("(t=)"));
}

我试图检测 url 中的任何位置是否有“t=”,但测试用例返回 false,即使给定的 url 确实包含“t=”并且适用于 IntelliJ 上的“Check RegExp”功能。有人解决这个问题但仍在使用 RegEx 吗?

java intellij-idea regex-group assertion
1个回答
0
投票

您需要在

t=
之前和之后多次接受任何字符,以下应该有效:

@Test
void hasCurrentProgress()
{
    YTVideo yt = new YTVideo();
    yt.setUrl("https://www.youtube.com/watch?v=U6Z8FkjGEb4&t=2s");
    assertTrue(yt.getUrl().matches(".*(t=).*"));
}
© www.soinside.com 2019 - 2024. All rights reserved.