Я нашел решение для этого. Сначала позвольте мне поделиться ресурсами, где я получил хорошие знания о том, как использовать «testthat». https://r-pkgs.org/tests.html. Этот сайт имеет очень хорошее объяснение самого автора о testthat.
Что такое testthat и как его можно использовать для модульного тестирования? Я много читал о testthat, и это краткое объяснение этого. Прежде всего, testthat - это пакет в R для выполнения модульного тестирования. В основном он состоит из трех концепций:
- Ожидания
- Тесты
- Файлы
Ожидания
Таким образом, базовая c единица тестирования будет ожиданием. Это не что иное, как контрольный пример или то, что мы хотели бы проверить. Код для ожидания должен начинаться с ожидаемого_. В тест-пакете есть более 15 ожиданий. Чаще всего используется "wait_that". Синтаксис этого будет выглядеть следующим образом: Ожидается, что (фактический результат, ожидаемый результат) . Другими обычно используемыми ожиданиями являются Ожидаем_тру (), Ожидаем_фалл (), Ожидаем_производитель () и c ...
Тест
Тест - это не что иное, как ожидания, которые мы хотим проверить. Это делается с помощью ключевого слова test_that (). Синтаксис test_that: test_that (описание теста, условия тестирования (ожидания)) .
Files
Файлы являются тестовым файлом. Файл для тестирования должен начинаться с test_filename.
Как узнать, выполняется тест или нет?
После выполнения кода, если он запускается и переходит к следующая строка, то проверка прошла успешно. Если тест не пройден, возвращается сообщение об ошибке.
Как я решил свою проблему?
Моя проблема заключалась в проверке правильности фильтрации. Это код для этого,
test_that("Filtering of ab010 == 10 as expected",{
require("dplyr")
expect_true(unique(baseData[,"ab010"]) == 10)
})
Если тест не пройден, выдается сообщение об ошибке, подобное этому
Error: Test failed: 'Filtering of ab010 == 10 as expected'
* unique(baseData[, "ab010"]) == 10 isn't true.
Это решило мою проблему.