diff --git a/CMakeLists.txt b/CMakeLists.txt
index e1de62938726b171ec0500fad9284d2087a595ad..a75a72228d8c8ad1980da001f95a946eb6f2cd03 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,6 +28,9 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
 #--------------------#
 # Automatic settings #
 #--------------------#
+if(CMAKE_BUILD_TYPE MATCHES DEBUG)
+  set(CMAKE_VERBOSE_MAKEFILE ON)
+endif()
 
 # Processing user variables
 if (WITH_TIME_PROFILING)
@@ -71,3 +74,7 @@ else ()
     message ("Not Windows")
 endif ()
 
+find_package(Boost COMPONENTS unit_test_framework REQUIRED)
+IF (Boost_FOUND)
+    include_directories(${Boost_INCLUDE_DIR})
+endif()
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1d6a387532fdc5003d602db6077fc9b27233353b..9a93e97bf2c4b780fab5a8d571419c86717c0606 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -26,6 +26,15 @@ add_library(particle_swarm SHARED
         LearningMethods/ParticleSwarm.cpp
         LearningMethods/ParticleSwarm.h)
 
+add_library(boost_unit_test SHARED tests/boost_test_lib_dummy.cpp)
+
+add_executable(neuron_test tests/neuron_test.cpp)
+target_link_libraries(neuron_test boost_unit_test neuron)
+
+add_executable(linear_neuron_test tests/NeuronLinear_test.cpp)
+target_link_libraries(linear_neuron_test boost_unit_test neuron)
+
 add_executable(test_cases main.cpp)
 
-target_link_libraries(test_cases neuron particle_swarm boost_serialization)
\ No newline at end of file
+target_link_libraries(test_cases neuron particle_swarm boost_serialization)
+
diff --git a/src/tests/NeuronLinear_test.cpp b/src/tests/NeuronLinear_test.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f8b974042dd8e8f8f6cf66d8c63450cc87d71f17
--- /dev/null
+++ b/src/tests/NeuronLinear_test.cpp
@@ -0,0 +1,28 @@
+/**
+ * DESCRIPTION OF THE CLASS
+ *
+ * @author David Vojtek
+ * @date 2018
+ */
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MODULE neuronLinear_test
+#include <boost/test/unit_test.hpp>
+#include "../Neuron/NeuronLinear.h"
+
+/**
+ * Boost testing suite for testing NeuronLinear.h
+ * doesn't test inherit methods
+ */
+BOOST_AUTO_TEST_SUITE(neuronLinear_test)
+
+    BOOST_AUTO_TEST_CASE(neuronLinear_construction__test) {
+        NeuronLinear neuron(1.745, 784.4547);
+
+        BOOST_CHECK_EQUAL(neuron.activation_function_get_parameter(0), 1.745);
+        BOOST_CHECK_EQUAL(neuron.activation_function_get_parameter(0), 784.4547);
+
+
+    };
+
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/tests/boost_test_lib_dummy.cpp b/src/tests/boost_test_lib_dummy.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e13ffe1cc1c0b6ebc22ded71c38462c3e5ed1986
--- /dev/null
+++ b/src/tests/boost_test_lib_dummy.cpp
@@ -0,0 +1,6 @@
+//
+// Created by David on 11.07.2018.
+//
+
+#define BOOST_TEST_MODULE neuron_test
+#include <boost/test/included/unit_test.hpp>
diff --git a/src/tests/neuron_test.cpp b/src/tests/neuron_test.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..01b93c8eaefd8289946ca25e2572f833fe6679cd
--- /dev/null
+++ b/src/tests/neuron_test.cpp
@@ -0,0 +1,102 @@
+/**
+ * DESCRIPTION OF THE CLASS
+ *
+ * @author David Vojtek
+ * @date 2018
+ */
+
+#define BOOST_TEST_DYN_LINK
+
+#define BOOST_TEST_MODULE neuron_test
+#include <boost/test/unit_test.hpp>
+#include "../Neuron/Neuron.h"
+#include "../Neuron/NeuronLinear.h"
+/**
+ * Boost testing suite for testing Neuron.h
+ * testing use NeuralLinear.h
+ */
+BOOST_AUTO_TEST_SUITE(neuron_test)
+/**
+ * Test of saturation methods
+ */
+BOOST_AUTO_TEST_CASE(neuron_saturation_test) {
+        NeuronLinear neuron(0, 0);
+
+        BOOST_CHECK_EQUAL(neuron.is_saturated_in(), false);
+        BOOST_CHECK_EQUAL(neuron.is_saturated_out(), false);
+        neuron.set_saturation_in(123);
+        neuron.set_saturation_out(132);
+        BOOST_CHECK_EQUAL(neuron.is_saturated_in(), true);
+        BOOST_CHECK_EQUAL(neuron.is_saturated_out(), true);
+        neuron.adjust_saturation_in(-123);
+        neuron.adjust_saturation_out(-123);
+        BOOST_CHECK_EQUAL(neuron.is_saturated_in(), false);
+        BOOST_CHECK_EQUAL(neuron.is_saturated_out(), false);
+};
+/**
+ * Test of potencial methods
+ */
+BOOST_AUTO_TEST_CASE(neuron_potencial_test) {
+        NeuronLinear neuron(0, 0);
+
+        BOOST_CHECK_EQUAL(neuron.get_potential(), 0);
+        BOOST_CHECK_EQUAL(neuron.get_potential(), (size_t) 0);
+        neuron.set_potential(1.123456789);
+        BOOST_CHECK_EQUAL(neuron.get_potential(), 1.123456789);
+        neuron.adjust_potential(-0.123456789);
+        BOOST_CHECK_EQUAL(neuron.get_potential(), 1);
+        BOOST_CHECK_EQUAL(neuron.get_potential(), 1.0);
+        BOOST_CHECK_EQUAL(neuron.get_potential(), (size_t) 1);
+};
+/**
+ * Test of state methods
+ */
+BOOST_AUTO_TEST_CASE(neuron_state_test)
+        {
+                NeuronLinear neuron(0,0);
+
+                neuron.set_state(0.00000);
+                BOOST_CHECK_EQUAL(neuron.get_state(),0);
+                BOOST_CHECK_EQUAL(neuron.get_state(),(size_t)0);
+                neuron.set_state(1.123456789);
+                BOOST_CHECK_EQUAL(neuron.get_state(), 1.123456789);
+                neuron.set_state(-0.123456789);
+                BOOST_CHECK_EQUAL(neuron.get_state(), 1);
+                BOOST_CHECK_EQUAL(neuron.get_state(), 1.0);
+                BOOST_CHECK_EQUAL(neuron.get_state(), (size_t)1);
+
+        };
+
+/**
+ * Test of activation function methods
+ */
+BOOST_AUTO_TEST_CASE(neuron_activation_function_test)
+{
+        NeuronLinear neuron(0,0);
+
+        BOOST_CHECK_EQUAL(neuron.activation_function_get_n_parameters(), 0);
+        BOOST_CHECK_THROW(neuron.activation_function_get_parameter(0), std::out_of_range);
+        neuron.activation_function_set_parameter(0,41.154);
+        BOOST_CHECK_EQUAL(neuron.activation_function_get_parameter(0), 41.154);
+        BOOST_CHECK_EQUAL(neuron.activation_function_get_n_parameters(), 1);
+
+};
+/**
+ * TODO
+ */
+BOOST_AUTO_TEST_CASE(neuron_connection_in_test){
+    NeuronLinear neuron(0,0);
+   // ConnectionWeight weight = new ConnectionWeight()
+   // Connection con = new Connection( neuron, neuron , )
+
+        BOOST_CHECK_THROW(neuron.get_connections_in(), std::nullptr_t);
+}
+/**
+ * TODO
+ */
+BOOST_AUTO_TEST_CASE(neuron_destructor_test){
+
+
+}
+
+BOOST_AUTO_TEST_SUITE_END()