testing qt model view implementations stephen kelly july
play

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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend