diff --git a/DESCRIPTION b/DESCRIPTION
index 6651169c93e5b3fd9f5cd8a7e05b3ed76ae2cf82..b20e6fbf3fd78e5852808b098fe9ce6c1b798da2 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -38,6 +38,8 @@ Imports:
     dendextend,
     reshape2,
     RColorBrewer
+Suggests:
+    testthat
 License: GPL (>= 2)
 RoxygenNote: 7.1.2
 Encoding: UTF-8
diff --git a/tests/testthat.R b/tests/testthat.R
new file mode 100644
index 0000000000000000000000000000000000000000..7031b2c2e5ceaf2d74cb0809909849bb3e20f9f0
--- /dev/null
+++ b/tests/testthat.R
@@ -0,0 +1,4 @@
+library("testthat")
+library("SISIR")
+
+test_check("SISIR")
diff --git a/tests/test_ridge.R b/tests/testthat/test_ridge.R
similarity index 63%
rename from tests/test_ridge.R
rename to tests/testthat/test_ridge.R
index b27defdf5187ab233f214e3d26352deb2c67657b..853906d9d3b420567f7e0d7625e4ccda2661a511 100644
--- a/tests/test_ridge.R
+++ b/tests/testthat/test_ridge.R
@@ -1,5 +1,8 @@
-library(SISIR)
+library("SISIR")
 
+context("Testing ridge regression `ridgeSIR`")
+
+test_that("Normalization in ridgeSIR works as expected.", {
 set.seed(1140)
 
 tsteps <- seq(0, 1, length = 200)
@@ -15,7 +18,8 @@ res_ridge <- ridgeSIR(x, y, H = 10, d = 5, mu2 = 10^8)
 
 # test if normalization is OK
 norm_EDR <- res_ridge$utils$norm_EDR
-stopifnot(max(abs(
-  diag(res_ridge$parameters$d) - 
-    crossprod(res_ridge$EDR, norm_EDR) %*% res_ridge$EDR
-  )) < 10^(-10))
+
+expect_equal(diag(res_ridge$parameters$d), 
+             crossprod(res_ridge$EDR, norm_EDR) %*% res_ridge$EDR,
+             tolerance = 10^(-10))
+})