Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2...

23
Krzysztof Owsiany Twitter: @k_owsiany Blog: MrDev.pl Podcast: After.conf

Transcript of Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2...

Page 1: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Krzysztof Owsiany

Twitter: @k_owsiany

Blog: MrDev.pl

Podcast: After.conf

Page 2: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Agenda

● Testy automatyczne● TDD● GIT Flow● Warsztaty● Do kodu!

Page 3: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Testy automatyczne

Page 4: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

program sprawdza program

test sprawdza funkcjonalność

Page 5: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

jednostkowe(unit)

integracyjne (integration)

uzżytkownika(end to end)

Page 6: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Warstwa 1

Warstwa 2

Warstwa n

MODUŁ 1

MODUŁ 2

MODUŁ 3

MODUŁ 4

MODUŁ 5

MODUŁ n

test 1

test 2

test 3

test 1

test 2

test 3

test 1

test 2

test 1

test 2

test 3

test 1

test 1

Page 7: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

APLIKACJA

MODUŁ 1

MODUŁ 2

MODUŁ 3

MODUŁ 4

MODUŁ 5

MODUŁ n

test 1

test 2

test 3

test 1

test 2

test 3

test 1

test 2

test 1

test 2

test 3

test 1

test 1

Page 8: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Test-Driven Development

Page 9: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

CODECODEREFA-CTOR

REFA-CTOR

TESTTEST

Page 10: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Git, Git Flow, GitHub

Page 11: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

git

Page 12: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

master

Page 13: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

gitflow

Page 14: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

master

v0.1 v0.11 v0.2

hotfixes

releases

develop

features

v0.2

v0.3

v0.3

Page 15: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

GitHub

Page 16: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Warsztaty

Page 17: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

G I T

D O J O

TDD

Page 18: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Testator

Refaktoryzator

Integrator Implementator

Scenariusz

Page 19: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

public class OperationTest{[Fact] lub [Theory][InlineData(var1,var2)]public void nazwa_testu() {

//arrange_fixture.arrange_operation();

act();

//assert_fixture.assert();

}

private void act() {_fixture.act();

}

public OperationText(){_fixture = OperationFixture.Create();

}

private readonly OperationFixture _fixture;}

public class OperationFixture{ private Operation _operation;

public OperationFixture(){_operation = new Operation();

}

public void arrange_operation() {_operation.Set(0);

}

private void act() {_operation.Run();

}

public void assert() {_operation.Result .ShouldBe(0);

}}

Page 20: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

public class OperationTest{[Fact] lub [Theory][InlineData(var1,var2)]public void nazwa_testu() {

//arrange_fixture.arrange_operation();

act();

//assert_fixture.assert_throw_exception();

}

private void act() {_fixture.act();

}

public OperationText(){_fixture = OperationFixture.Create();

}

private readonly OperationFixture _fixture;}

public class OperationFixture{ private Operation _operation;

private Action _act;

public OperationFixture(){_operation = new Operation();

}

public void arrange_operation() {_operation.Set(0);

}

private void act() {_act = () => operation.Run();

}

public void assert_throw_exception() {_act .ShouldThrow<Exception>() .WithMessage(”xyz”);

}}

Page 21: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

fakt__scenariusz_jaki_testuje

oczekiwane_zachowanie__rezultat__uzasadnienie

nazwa_testu

poprawny_wynik_dodawania__gdy_liczba_a_i_liczba_b_są_całkowite

Page 22: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

asercja co_weryfikuje

nazwa_asercji

asercja__poprawny_wynik_dodawania

Page 23: Krzysztof Owsiany - MrDev · 2020. 5. 24. · Warstwa 1 Warstwa 2 Warstwa n MODUŁ 1 MODUŁ 2 MODUŁ 3 MODUŁ 4 MODUŁ 5 MODUŁ n test 1 test 2 test 3 test 1 test 2 test 3 test 1

Do kodu!