2017-10-30 12 views
0

내 패키지에서 나는 testthatgWidgetRGtk2을 사용하고 있는데, 코드 줄에서 사용자 작업을 에뮬레이션하는 방법이 있는지 알고 싶습니다. 예를 들어 다음과 같이 사용자가 버튼을 누르는 동작을 테스트하고 있습니다. . 지금까지 코드의 일부를 테스트 할 수 없었으므로 수동으로 테스트해야합니다.gWidget : test에서 사용자 작업을 에뮬레이션하는 방법이 있습니까?

require(gWidgets) 
options("guiToolkit"="RGtk2") 

win <- gwindow("Hello World", visible=TRUE) 
obj <- gbutton("Hello world", container = gwindow(), 
handler = function(h,...) assign("test",1,.GlobalEnv)) 

require(testthat) 
test_that("Test button click",{ 
    # Something here to emulate pushing button  
     expect_equivalent(test,1) 
    }) 

사용자 동작을 어떻게 에뮬레이트 할 수 있습니까?

+1

나는 어떤 것도 모른다. gWidgets2RGtk2에는이를 위해 사용할 수있는 unexported'invoke_change_handler'가 있습니다. – jverzani

+0

처음에는 지금까지 몇 년 동안 사용해 본 패키지에 대해 개인적으로 고마워합니다. 그리고 당신의 대답에 감사드립니다. 나는 시도 할 것이다! – Cedric

답변

0

매우 철저하게 검색 한 결과, 테스트에서 핸들러 함수를 호출하는 것이 해결책이라고 생각합니다. 소스 코드에서 invoke_change_handler에 액세스 할 수있는 방법을 찾지 못했습니다.

+0

예. gWidgets2에서만 가능합니다. – jverzani