Я читал о модульных тестах и Чистая архитектура и попытался реализовать что-то, что включало бы эти две вещи.
Насколько я понимаю, чистая архитектура структурирована так, чтобы методы объекта Interactor можно было тестировать по модулю.
Но когда вариант использования выглядит примерно так: «Создайте файл, содержимое которого вычисляется из некоторых данных в каком-либо формате», я запутываюсь, потому что он не унитарный (есть вычисление содержимого файла и создание файла, которые являются в варианте использования)
Вот какой-то псевдокод, иллюстрирующий мою ситуацию:
/* We are in an Interactor (i.e. UseCaseObject)
* This method 1)computes fileContent and 2)writes it into a file.
*/
public void CreateFileFromData(someDataInSomeFormat) {
var parsedData = SomeParser.Parse(someDataInSomeFormat);
string fileContent = ???;
WriteFile(fileContent);
}
Мои вопросы следующие:
- Должен ли метод, определенный в Interactor, быть унитарным? (например, делай только одно)
- Должен ли метод, определенный в Interactor, проходить модульное тестирование? (Я вижу функцию, унитарную или нет, как тестируемую единицу, поправьте меня, если это неверно)
- Какой класс должен выполнять вычисление fileContent в чистой архитектуре?