testing qt model view implementations stephen kelly july

Testing Qt Model-View Implementations Stephen Kelly July 2010 T - PowerPoint PPT Presentation

Testing Qt Model-View Implementations Stephen Kelly July 2010 T esting Model-View Implementations Designing testable code High-level Model-View design T est-drivers and mock objects Unit test execution KDE ItemViews


  1. Testing Qt Model-View Implementations Stephen Kelly – July 2010

  2. T esting Model-View Implementations ● Designing testable code ● High-level Model-View design ● T est-drivers and mock objects ● Unit test execution ● KDE ItemViews library

  3. T esting Model-View Implementations ● Designing testable code – Motivation

  4. T esting Model-View Implementations ● Designing testable code – Motivation Dependency Dependency Dependency Dependency Test driver Class under test Test driver Class under test Dependency Dependency

  5. T esting Model-View Implementations ● Designing testable code – Motivation Dependency Dependency Test driver Class under test Test driver Class under test Dependency Dependency Dependency Dependency

  6. T esting Model-View Implementations ● Designing testable code – Motivation – Abstraction Fake Dependency Fake Dependency Test driver Class under test Test driver Class under test Fake Dependency Fake Dependency Fake Dependency Fake Dependency

  7. T esting Model-View Implementations ● High-level Model-View design – Separation of concerns Delegate Delegate View Model View Model Selections Selections

  8. T esting Model-View Implementations ● High-level Model-View design – Separation of concerns Delegate Delegate Object Object View Model View Model store store Selections Selections

  9. T esting Model-View Implementations ● High-level Model-View design – Separation of concerns Delegate Delegate Fake Fake View Model Object View Model Object store store Selections Selections

  10. T esting Model-View Implementations ● High-level Model-View design – Separation of concerns Fake Fake Test Test Model Object Model Object driver driver store store

  11. T esting Model-View Implementations ● T est drivers and mock objects – Real-world model view EMail Model EMail Model Email view

  12. T esting Model-View Implementations ● T est drivers and mock objects – Real-world model view Test Driver EMail Model Test Driver EMail Model

  13. T esting Model-View Implementations ● T est drivers and mock objects – Real-world model view – Dependency injection Test Driver EMail Model Test Driver EMail Model Fake Data Fake Data

  14. T esting Model-View Implementations ● High-level Model-View design – Separation of concerns – Abstraction View Proxy Model Proxy View Model

  15. T esting Model-View Implementations ● High-level Model-View design – Separation of concerns – Abstraction View Proxy Model Proxy View Model

  16. T esting Model-View Implementations ● High-level Model-View design – Separation of concerns – Abstraction View Model View Model

  17. T esting Model-View Implementations ● T est drivers and mock objects – Real-world model view – Dependency injection View Proxy Model Proxy View Model

  18. T esting Model-View Implementations ● T est drivers and mock objects – Real-world model view – Dependency injection – setSourceModel(new FakeModel); Test driver Proxy Fake Model Proxy Test driver Fake Model

  19. T esting Model-View Implementations ● KDE ItemViews test suite – Fake source model (interpreter pattern) – Fake selection model – ProxyModelT est – ModelSpy

  20. T esting Model-View Implementations ● KDE ItemViews test suite – Fake source model (interpreter pattern) – Fake selection model – ProxyModelT est – ModelSpy ● KDE ItemViews – KSelectionProxyModel – KDescendantsProxyModel – KReparentingProxyModel

  21. T esting Model-View Implementations ● Unit test execution – Multiple executions – Configurable tests for configurable proxies – Individually executable – Re-usable

  22. T esting Model-View Implementations ● Summary – Dependency injection – Simplify complex systems – 1,000's of tests – Re-usable – kdelibs/kdeui/tests/proxymodeltestapp

  23. T esting Model-View Implementations Questions & Answers

Recommend


More recommend