Можно ли использовать наследование в тестовых костюмах TestNG? - PullRequest
1 голос
/ 11 апреля 2011

Допустим, у меня есть следующий тестовый класс TestNG:

public class OwnTestLauncher  {
    @Test(dataProvider = "valid-provider")
    public void validSintax(Collection<File> files) throws PlooException {
        runFilesThroughCompiler(files);
    }

    @Test(dataProvider = "invalid-provider")
    public void invalidSintax(Collection<File> files) throws PlooException {
        runFilesThroughCompiler(files);
    }

        protected String someAlgoritmUsedByRunFilesThroughCompiler(...) { ... }

        ...
}

И я бы хотел создать несколько разных костюмов, чтобы я мог запускать каждый из них в разных случаях:

public class SomeOtherFlavour extends OwnTestLauncher {
    @Override
    protected String someAlgoritmUsedByRunFilesThroughCompiler(files) { ... }
}

Я пытался запустить код, показанный выше, но он не работал.Я также пытался комментировать SomeOtherFlavour с @Test, но это, похоже, не помогло.Можно ли вообще делать то, что я пытаюсь сделать?

1 Ответ

0 голосов
/ 11 апреля 2011

Боюсь, вам нужно извлечь someAlgoritmUsedByRunFilesThroughCompiler в отдельный интерфейс (или абстрактный класс) и написать различные классы его реализации.

public interface MyAlgorithm {
    String someAlgoritmUsedByRunFilesThroughCompiler(...);
}

Методы тестирования в OwnTestLauncher затеможидайте реализацию этого интерфейса в качестве дополнительного параметра, и вы все равно сможете использовать своих поставщиков данных, адаптируя их.

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