Anda tidak dapat menulis pengujian unit untuk fungsi ini, karena Anda tidak dapat mengalokasikan memori di heap tanpa panggilan sistem. Oleh karena itu, ini adalah pengujian integrasi, karena Anda tidak dapat mengisolasi unit yang diuji dari sistem operasi.
Saya akan membuat executable kecil baru yang memanggil allocation_routine untuk n byte. Tergantung allocation_routine apa seharusnya dikembalikan, Anda dapat menegaskan bahwa itu bukan-nullptr . Lalu, tulis n byte ke wilayah memori ini. Kompilasi dan tautkan menggunakan pembersih alamat (tersedia dengan gcc dan clang ), lalu coba integrasikan ke dalam runner pengujian aplikasi Anda (ctest dll.).
Anda mungkin juga ingin membatasi heap yang tersedia melalui setrlimit POSIX untuk memverifikasi perilaku saat alokasi gagal.