提问人:floppalover 提问时间:11/14/2023 更新时间:11/14/2023 访问量:47
为什么在assertTrue()中使用matches()时收到AssertionFailedError?
Why am I receiving an AssertionFailedError when using matches() in assertTrue()?
问:
@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=”,但即使给定的 url 确实包含“t=”并且适用于 IntelliJ 上的“检查正则表达式”功能,测试用例也会返回 false。有没有人解决这个问题,但仍然使用正则表达式?
答:
0赞
Semaphor
11/14/2023
#1
您需要在之前和之后多次接受任何字符,以下操作应该有效:t=
@Test
void hasCurrentProgress()
{
YTVideo yt = new YTVideo();
yt.setUrl("https://www.youtube.com/watch?v=U6Z8FkjGEb4&t=2s");
assertTrue(yt.getUrl().matches(".*(t=).*"));
}
评论
0赞
floppalover
11/14/2023
上帝保佑你的灵魂,谢谢你,我一直在试图找出为什么这有一段时间不起作用。
0赞
Semaphor
11/14/2023
我很高兴我能帮上忙。如果它适合您,您可以将答案标记为已接受。
评论
assertTrue(yt.getUrl().contains("t="));
似乎更简单......