>

하는 중

onView(withId(R.id.login_button)).check(matches(isClickable()));

버튼이 클릭 가능한지 확인하는 데 유용합니다.버튼을 클릭 할 수 없는지

확인하려면 어떻게합니까?

편집 : 내가 말했듯이, 그것이 isClickable 경우에만 알려줍니다 .클릭 할 수 없음인지 확인하는 방법을 찾고 있습니다 .p.

  • 답변 # 1

    와이즈 비즈

    Edit - Solution!

    The solution is to use the not() function which returns a matcher that has the opposite logic of the matcher you pass to it.

    처럼 간단합니다.

    not( isClickable() )
    
    
    <시간> <시간> 설명-

    성냥이나 검사 기능을 사용하여 전달 된 매처의 허위를 테스트하려고했으나 불가능합니다. 그러나not ()함수를 사용하여 다른 매처와 반대되는 논리를 갖는 매처를 만들 수 있습니다.

    일치와 같은 ViewAssertions에 대한 설명서를 읽은 후에는 대부분의 ViewAssertion이 매개 변수를 허용하지 않으며 (이 경우 관심있는 매개 변수도 허용하지 않음) onView(withId(R.id.login_button)).check(matches( not(isClickable()) )); . 즉, ViewAssertion의 작동 방식을 변경할 수 없으므로 다른 방법을 찾아야합니다.

    <시간> 와이즈 비즈

    와이즈 비즈  함수는 작업하려는 UI 객체 (ID가 "Throw junit.framework.AssertionError when the view assertion does not hold." 인 버튼)를 반환합니다. ), 우리는

    Breaking down the code-

    를 호출  해당 뷰 개체에서 어설 션을 적용하거나 일부 어설 션이 true인지확인합니다.

    와이즈 비즈  함수는 onView 를 전달하여 빌드 한 어설 션을 반환합니다. . 와이즈 비즈  함수는 login_button 에 돌려주는 데 사용할 수있는 Matcher를 반환합니다. .

    check  다른 Matcher를 허용하는 Matcher이며 Matcher의 반대 논리/반환 값이 전달 된 Matcher를 반환합니다. (입술입니다!)

    이것은 우리가 matches 에 주장을 적용한다고 말하는 것으로 요약됩니다. . 우리가 적용하는 주장은 Matcher 입니다 .

    <시간>

    ViewAssertion ( isClickable() ) )이 적용됨 ( matches() )를 뷰 객체 ( not() )에 ), 조치가 logcat에 로그되고 어설 션이 false로 평가되면 login_button  또한 던져 질 것이다.

    matches( not( isClickable() ) )

  • 이전 node.js - 아폴로 서버 익스프레스 + GraphQL 관계
  • 다음 docker - dockerfile을 빌드하려고 할 때 잘못된 인수 오류가 발생합니다