let validator = TextValidator() // when let isTextUppercased = validator.isTextUppercased(textForValidation) // then XCTAssertFalse(isTextUppercased) } let textForValidation = "cocoaheads"
let validator = TextValidator() // when let isTextUppercased = validator.isTextUppercased(textForValidation) // then XCTAssertFalse(isTextUppercased) } let textForValidation = "cocoaheads" - Почему конкретно эта строка? Почему не другая?
= TextValidator() // when let isTextUppercased = validator.isTextUppercased(textForValidation) // then XCTAssertFalse(isTextUppercased) } Good way let textForValidation = RandomTextFactory.word().lowercased()
= TextValidator() // when let isTextUppercased = validator.isTextUppercased(textForValidation) // then XCTAssertFalse(isTextUppercased) } Good way let textForValidation = RandomTextFactory.word().lowercased()
Bank() bank.rate = Rate(fromCurrency: "USD", toCurrency: "GBP", rate: 2) bank.commission = 0.015 // when let result = bank.convert(Money(withCurrency: "GBP", amount: 100), toCurrency: "GBP") // then XCTAssertEqual(Money(withCurrency: "GBP", amount: 100/2*(1-0.015)), result) - Почему именно так рассчитывается конвертация? - Уверены ли мы, что в реализации такой же алгоритм?
• Составляйте список тестов, которые нужно реализовать • Пишите тесты до того, как вы напишете production код • Начните писать тесты с assert/expect/should проверок (снизу-вверх) • Используйте данные для тестов, которые не вводят в заблуждение • Предпочтите в своих тестах явные данные, нежели вычисляемые