diff --git a/tests/use_case/object_detection/ObjectDetectionUCTest.cc b/tests/use_case/object_detection/ObjectDetectionUCTest.cc
index 023b893..ffb4976 100644
--- a/tests/use_case/object_detection/ObjectDetectionUCTest.cc
+++ b/tests/use_case/object_detection/ObjectDetectionUCTest.cc
@@ -20,16 +20,29 @@
 #include "YoloFastestModel.hpp"
 #include "UseCaseHandler.hpp"
 #include "UseCaseCommonUtils.hpp"
+#include "BufAttributes.hpp"
 
 #include <catch.hpp>
 
+namespace arm {
+    namespace app {
+        static uint8_t tensorArena[ACTIVATION_BUF_SZ] ACTIVATION_BUF_ATTRIBUTE;
+    } /* namespace app */
+} /* namespace arm */
+
+extern uint8_t* GetModelPointer();
+extern size_t GetModelLen();
+
 TEST_CASE("Model info")
 {
     /* Model wrapper object. */
     arm::app::YoloFastestModel model;
 
     /* Load the model. */
-    REQUIRE(model.Init());
+    REQUIRE(model.Init(arm::app::tensorArena,
+                    sizeof(arm::app::tensorArena),
+                    GetModelPointer(),
+                    GetModelLen()));
 
     /* Instantiate application context. */
     arm::app::ApplicationContext caseContext;
@@ -49,7 +62,10 @@
     arm::app::YoloFastestModel model;
 
     /* Load the model. */
-    REQUIRE(model.Init());
+    REQUIRE(model.Init(arm::app::tensorArena,
+                    sizeof(arm::app::tensorArena),
+                    GetModelPointer(),
+                    GetModelLen()));
 
     /* Instantiate application context. */
     arm::app::ApplicationContext caseContext;
@@ -72,7 +88,10 @@
     arm::app::YoloFastestModel model;
 
     /* Load the model. */
-    REQUIRE(model.Init());
+    REQUIRE(model.Init(arm::app::tensorArena,
+                    sizeof(arm::app::tensorArena),
+                    GetModelPointer(),
+                    GetModelLen()));
 
     /* Instantiate application context. */
     arm::app::ApplicationContext caseContext;
@@ -95,7 +114,10 @@
     arm::app::YoloFastestModel model;
 
     /* Load the model. */
-    REQUIRE(model.Init());
+    REQUIRE(model.Init(arm::app::tensorArena,
+                    sizeof(arm::app::tensorArena),
+                    GetModelPointer(),
+                    GetModelLen()));
 
     /* Instantiate application context. */
     arm::app::ApplicationContext caseContext;
