У меня проблема с буст-юнит-тестированием. По сути, я создаю прибор, который является частью набора для модульного тестирования кеша ресурсов. Моя основная проблема заключается в том, что между тестами кэш ресурсов становится пустым. Таким образом, первый тест, который проверяет кэш, проходит, а второй - не пройден, потому что данных, которые первый тест вставил в кеш, больше нет. Чтобы решить эту проблему, мне пришлось заново вставить данные для второго теста. Это задумано или я что-то не так делаю? Вот код Последние 2 теста - вот где проблема.
#include "UnitTestIncludes.hpp"
#include "ResourceCache.hpp"
#include <SFML/Graphics.hpp>
struct ResourceCacheFixture
{
ResourceCacheFixture()
{
BOOST_TEST_MESSAGE("Setup Fixture...");
key = "graysqr";
imgpath = "../images/graysqr.png";
}
ResourceCache<sf::Image, ImageGenerator> imgCache;
std::string key;
std::string imgpath;
};
// Start of Test Suite
BOOST_FIXTURE_TEST_SUITE(ResourceCacheTestSuite, ResourceCacheFixture)
// Start of tests
BOOST_AUTO_TEST_CASE(ImageGeneratorTest)
{
ImageGenerator imgGen;
BOOST_REQUIRE(imgGen("../images/graysqr.png"));
}
BOOST_AUTO_TEST_CASE(FontGeneratorTest)
{
FontGenerator fntGen;
BOOST_REQUIRE(fntGen("../fonts/arial.ttf"));
}
// This is where the issue is. The data inserted in this test is lost for when I do
// the GetResourceTest. It is fixed here by reinserting the data.
BOOST_AUTO_TEST_CASE(LoadResourceTest)
{
bool result = imgCache.load_resource(key, imgpath);
BOOST_REQUIRE(result);
}
BOOST_AUTO_TEST_CASE(GetResourceTest)
{
imgCache.load_resource(key, imgpath);
BOOST_REQUIRE(imgCache.get_resource(key));
}
// End of Tests
// End of Test Suite
BOOST_AUTO_TEST_SUITE_END()