SwiftbookTeam5 / MdEditor

0 stars 0 forks source link

Поправить ImportantTaskTest #67

Closed aleksandra-riazanova closed 8 months ago

aleksandra-riazanova commented 9 months ago

Ответ от преподавателя:

Замечания:

  1. старайтесь находить короткие варианты и используйте контекст тестируемого класса, например init легко заменит initialization или createImportantTask в ImportantTaskTest

  2. избегать дублирования кода - использование метода makeSUT() для подготовки, другие приватные методы вычисленний и свойства

    • в ImportantTaskTest есть что вынести за тестируемые методы
  3. в ImportantTaskTest немного странный тестовый метод:

 func test_createImportantTask_initializationShouldBeValid() {
        // arrange
        let sut = ImportantTask(title: "TestImportantTask", taskPriority: .low)

        // assert
        XCTAssertNotNil(sut.title, "Отсутствует Title")
        XCTAssertNotNil(sut.completed, "Отсутствует Completed")
        XCTAssertNotNil(sut.taskPriority, "Отсутствует taskPriority")
        XCTAssertNotNil(sut.deadLine, "Отсутствует deadLine")
    }

как вариант:

final class ImportantTaskTests: XCTestCase {

    func test_init_withTitleAndLowPriority_taskShouldHaveCorrectTitleAndPriorityAndNotBeCompleted() {
        // arrange
        let sut = ImportantTask(title: title, taskPriority: .low)

        // act
        let testTitle = sut.title
        let testPriority = sut.taskPriority
        let isCompleted = sut.completed

        // assert
        XCTAssertEqual(testTitle, title, "Имя новой задачи не корректно")
        XCTAssertEqual(testPriority, .low ,"Приоритет новой задачи не корректен")
        XCTAssertFalse(isCompleted, "Новая задача не должна быть выполненной")
    }
}

// MARK: - TestData

private extension ImportantTaskTests {
    var title: String {
        "Important Test Task"
    }
}

Памятка выполнения задания:

ImportantTaskTests Проверяем чистоту инициализации задачи

Также можно проверить переключение статуса выполнения

Обязательно проверить формирование даты крайнего срока выполнения с каждым приоритетом (либо саму дату, либо через количетсво дней до срока)