UnitTest ++ конструирует светильники несколько раз? - PullRequest
1 голос
/ 19 апреля 2010

Я пишу некоторые модульные тесты в UnitTest ++ и хочу написать несколько тестов, которые используют некоторые общие ресурсы. Я думал, что это должно работать через их настройку TEST_FIXTURE, но, похоже, создается новый прибор для каждого теста. Пример кода:

#include <UnitTest++.h>

struct SomeFixture {
    SomeFixture() {
        // this line is hit twice
    }
};

TEST_FIXTURE(SomeFixture, FirstTest) {
}

TEST_FIXTURE(SomeFixture, SecondTest) {
}

Мне кажется, что я что-то делаю не так; Я думал, что весь смысл в том, чтобы приспособление состояло в том, что код установки / разрыва происходит только один раз. Я ошибаюсь в этом? Есть ли что-то еще, что я должен сделать, чтобы заставить это работать таким образом?

Ответы [ 2 ]

6 голосов
/ 19 апреля 2010

Смысл тестового прибора в том, что не нужно писать один и тот же код настройки / разрыва в каждом отдельном тесте, а не делиться состоянием. Если вы хотите поделиться состоянием, вы можете просто сослаться на класс со статическими полями и статическими функциями в ваших тестах, а затем вы можете использовать стандартный макрос TEST вместо TEST_FIXTURE.

2 голосов
/ 19 апреля 2010

весь смысл в том, чтобы прибор был таким, чтобы код настройки / разрыва происходил только один раз

Нет, весь смысл приспособлений в том, что приспособление должно повторяться при каждом испытании. То, что вы видите, - это ожидаемое и правильное поведение.

...