IdlingResource неправильно регистрируется в TestRule - PullRequest
0 голосов
/ 31 октября 2018

Я создал очень простую реализацию IdlingResource для демонстрации такого поведения.

Запуск результатов теста при моем assertTrue() запуске, потому что idle = false.

public class BootstrapRuleTest {

    private boolean idle = true;

    @Rule
    public ExternalResource rule = new ExternalResource() {

        @Before
        public void before() {
            IdlingRegistry.getInstance().register(new IdlingResource() {
                @Override
                public String getName() {
                    return "Im Unique!";
                }

                @Override
                public boolean isIdleNow() {
                    return idle;
                }

                @Override
                public void registerIdleTransitionCallback(ResourceCallback callback) {

                }
            });

            idle = false;

            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    idle = true;
                }
            }).start();
        }
    };

    @Test
    public void test() {
        assertTrue("Rule broken", idle);
    }
}

1 Ответ

0 голосов
/ 31 октября 2018

По какой-то причине IdlingRegistry.getInstance().register() не работает, когда вызывается из правила ExternalResource.

Если я переключу это на правило TestWatcher, тогда все будет нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...