VScode PlatformIO unit test can not use function declare in header file, but use the function definition code is work.
It show undefined reference to `wifiInit()'
Code
#include <unity.h>
#include "wifi/wifi.h"
void test_unit() {
TEST_ASSERT_EQUAL(EXIT_SUCCESS,wifiInit());
}
void setup() {
delay(2000);
UNITY_BEGIN();
RUN_TEST(test_unit);
}
void loop() {}
#include <Arduino.h>
#include <WiFi.h>
#ifndef __wifi_init_h_
#define __wifi_init_h_
#define WIFI_SSID "**"
#define WIFI_PASSWD "***"
int wifiInit();
#endif
#include "wifi/wifi.h"
int wifiInit() {
// 设置ESP32通过WIFI连接网络
WiFi.begin(WIFI_SSID, WIFI_PASSWD);
WiFi.config(WiFi.localIP(), WiFi.gatewayIP(), WiFi.subnetMask(), (uint32_t)0xDF050505, (uint32_t)0x72727272);
// 打印连接状态
Serial.println("Connecting");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.print("\nIP address: ");
Serial.println(WiFi.localIP());
return EXIT_SUCCESS;
}
}
I coyied the wifiInit() in wifi.cpp to the wifi.h, it worked.