Инициализированный класс в TEST_METHOD_INITIALIZE в CppUnitTestFramework теряет ссылку на указатель

Я пишу класс контроллера робота контроллер в котором я использую структуру Ось для каждого из 4 управляемых двигателей.

Для каждого теста я хочу сбросить все, поэтому я создал указатель в классе, который перед каждым методом теста заменяется новым контроллером. Инициализация прекрасно работает в TEST_METHOD_INITIALIZE, но после вызова любого TEST_METHOD программа, похоже, сбрасывает указатели Axis.

Спасибо за вашу помощь!

Изменить: После дальнейшего анализа у меня есть теория, что инициализированные объекты Оси Ось init_mx удаляются после завершения метода.

Edit2: я думаю, что это немного более сложная проблема, как это: Указатель на локальную переменную в C ++
Тем не менее, я не нашел способа сброса переменных Axis для каждого метода без фактического сброса каждой переменной в нем.

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
...
namespace UnitTest
{

TEST_CLASS(UnitTestController)
{
public:
Controller* controller;
struct Axis *mx, *my, *mz, *mg;

TEST_METHOD_INITIALIZE(methodName)
{
Axis init_mx(50), init_my(50), init_mz(50), init_mg(5);
mx = &init_mx;
my = &init_my;
mz = &init_mz;
mg = &init_mg;
Controller init_controller(mx, my, mz, mg);
controller = &init_controller;

введите описание изображения здесь

        }
...
TEST_METHOD(id_3_next_mode)
{
mx->position = 5;
controller->getAxisPositionMx();
//Axis in pointers got reset and therefore have no pointers to the
//provided structs from TEST_METHOD_INITIALIZE

}

}

};
}

введите описание изображения здесь
Controller.h (выдержка):

private:
struct Axis *mx, *my, *mz, *mg;

Controller.cpp (отрывок)

Controller::Controller(Axis *mx_in, Axis *my_in, Axis *mz_in, Axis *mg_in)
{
mx = mx_in;
my = my_in;
mz = mz_in;
mg = mg_in;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]