我有记忆问题。我以这种方式使用结构:
包.h文件
#pragma once
#include <cstdlib>
struct Package {
char *data;
long long int *packageNumber;
long long int *allPackages;
Package(const int sizeOfData);
~Package();
};
Run Code Online (Sandbox Code Playgroud)
包.cpp
#include "Package.h"
Package::Package(const int sizeOfData) {
void *ptr = malloc(2 * sizeof(long long int) + sizeOfData * sizeof(char));
packageNumber = (long long int*) ptr;
allPackages = (long long int*) ((long long int*)ptr + sizeof(long long int));
data = (char*)((char*)ptr + 2 * sizeof(long long int));
}
Package::~Package() {
free(data);
free(packageNumber);
free(allPackages);
}
Run Code Online (Sandbox Code Playgroud)
并在方法中:
for (int …Run Code Online (Sandbox Code Playgroud) 我的命令测试有问题。我正在尝试在命令测试中模拟服务,但存在一个问题,即该模拟未在测试中使用。
以下是命令代码:
public function __construct(RpcClient $rpcClient, LoggerInterface $logger, EntityManagerInterface $entityManager)
{
$this->rpcClient = $rpcClient;
$this->logger = $logger;
$this->entityManager = $entityManager;
parent::__construct();
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$apiSecurityKey = $this->getContainer()->getParameter('api_security_key');
try {
$apiBoxesData = $this->rpcClient->callJsonRPCPostMethod("stations_info", ["apiSecurityKey" => $apiSecurityKey]);
.
.
.
Run Code Online (Sandbox Code Playgroud)
并测试:
//some of dependencies used
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Console\Tester\CommandTester;
class SynchronizeBoxInfoCommandTest extends KernelTestCase
{
const SYNCHRONIZE_BOX_INFO_COMMAND_NAME = "app:synchronize-box-info";
public function setUp()
{
parent::setUp();
static::$kernel = static::createKernel();
static::$kernel->boot();
$application = new Application(static::$kernel);
$this->command = $application->find(self::SYNCHRONIZE_BOX_INFO_COMMAND_NAME);
$this->command->setApplication($application); …Run Code Online (Sandbox Code Playgroud)