在我对Compose UI的测试中,我想测试没有显示任何与我的matcher
相匹配的内容.我有两种方法来判断:
-
onNode(matcher).assertDoesNotExist()
个 -
onNode(matcher).assertIsNotDisplayed()
个
不幸的是,根据我到目前为止的经验,在我的测试中,某些组合项在被移除后会响应"不存在",而其他一些项(尤其是LazyList
个项)会响应"不显示".如果它没有显示但仍然存在,assertDoesNotExist()
将失败.如果它不存在,assertIsNotDisplayed()
将失败.(!)
正如人们所期待的那样,我不在乎Compose是否认为某种东西在技术上"存在",我只想从用户的Angular 测试它是否已经消失了.那么,我怎么能断言这两项中的任何一项都会通过呢?
因为这些是断言,而不是布尔函数,所以我不能使用or
.
如果我同时调用这两个断言,肯定会有一个断言失败.
我还没能找到任何语义匹配器,如"显示".如果真的有,我可以
onNode(matcher and isDisplayed()).assertDoesNotExist()
但我找不到isDisplayed
个匹配者.
相反的测试很容易,显示的是and存在的东西:assertIsDisplayed()
可以做到这一点.我怎么测试assertIsDisplayed()
的对立面,它either不存在,or不显示?