Ademas de la metodología de desarrollo tradicional, ahora que están muy de moda otras como son TDD (Test Drive Development) o BDD (Behavior Driven Development), … Vamos a aprender la mas conocida de todas, TDD.
En este tutorial vamos a aprender con un sencillo ejemplo como hacer TDD en Xcode 8 con una app de ejemplo en iOS 10.
Descubriremos como crear:
Pruebas unitarias
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import XCTest @testable import CalculadoraTDD class CalculadoraTDDTests: XCTestCase { override func setUp() { super.setUp() // Put setup code here. This method is called before the invocation of each test method in the class. } override func tearDown() { // Put teardown code here. This method is called after the invocation of each test method in the class. super.tearDown() } func testSimpleDivideOperation() { let calcEngine = CalcEngine() let value = calcEngine.divide(dividendo: 10, divisor: 2) XCTAssert(value == 5, "La división sencilla no es correcta") } } |
Pruebas funcionales
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
class CalculadoraTDDUITests: XCTestCase { override func setUp() { super.setUp() continueAfterFailure = false XCUIApplication().launch() } override func tearDown() { super.tearDown() } func testDivideCalc() { let app = XCUIApplication() let txtDividendo = app.textFields.matching(identifier: "txtDividendo").element let txtDivisor = app.textFields.matching(identifier: "txtDivisor").element txtDividendo.tap() txtDividendo.typeText("20") txtDivisor.tap() txtDivisor.typeText("5") let buttonCalc = app.buttons.matching(identifier: "btnCalc").element buttonCalc.tap() let textResult = app.staticTexts.matching(identifier: "txtResult").element textResult.tap() XCTAssertEqual(textResult.label, "4", "La operación de división no ha funcionado en el UI") } } |
Sin duda, otra forma de hacer las cosas, muy sencilla, y que os garantiza la robustez y escalabilidad de vuestro código, teniendo siempre total seguridad de que tenéis los test que verifican la funcionalidad que tenéis implementada.
Si tenéis cualquier duda, nos podéis preguntar en los comentarios del post, o en nuestra cuenta en twitter @migueldiazrubio.
Excelente vídeo, corto, simple, muy bien explicado, nunca había hecho algo en TDD, obviamente esto es una simple introducción, pero muestra el potencial que tiene la práctica de TDD.
Muchas gracias.
Hola! Por todos lados veo cursos muy similares a este que se quedan (para mi gusto) un poco cortos. El ejemplo esta muy bien para empezar, pero creo que falta entrar mas en detalle para cuando se programa una app de verdad, donde hay llamadas a API y donde tambien hay modelos.
Me gusta muchisimo como haces los cursos y estaria genial si puedieras enseñar mas a fondo TDD.
Muchas gracias y buen trabajo!