Protocol-Oriented-Networking in Swift

A great post on how to apply protocol oriented programming principles for a common scenario: fetching data from the network for displaying in a ViewController. Including how to write testable code. Great stuff.

Source: Protocol-Oriented-Networking in Swift

Advertisements

Good Test, Bad Test

Although this post started from a Python talk I think that all the principles and “Myths” apply to all languages and environments. If you don’t have enough time make sure you read the “Myths”, it’s a must.
https://late.am/post/2015/04/20/good-test-bad-test.html

iOS Unit Testing: Dependency Injection with Structs in Swift

With Swift came the “Protocol-Oriented Programming” revolution and Structs made their comeback. Since you can’t subclass Structs and dependency injection is more difficult. This post suggests a “protocol based” solution. Nice.

iOS Unit Testing: Dependency Injection with Structs in Swift

Mock Application in Espresso for Dependency Injection

A short post that demos a nice approach to use Dagger and the Application class to provide Mock objects for tests. It makes it very easy to mock all the application modules.
http://blog.sqisland.com/2015/12/mock-application-in-espresso.html

Test automation for iOS

A summary of testing practices at Blacklane. Including details on how they do: Unit testing, Integration testing, Functional testing, Acceptance or end-to-end testing.
http://tech.blacklane.com/2015/12/13/test-automation-for-ios

Test Logs in Xcode

Apple announced new UI Testing support with XCode 7. This blog post dives into the logs generated when running the tests and how to use them. This is especially useful for CI.
http://michele.io/test-logs-in-xcode

What’s new in Android Testing Droidcon Italy 2015

A recent presentation on what’s new in the latest release of the Android testing support library. The last release includes a few change and enhancements this presentation has almost all of them with code samples too.
https://docs.google.com/presentation/d/1EtFKPluGiuxZcr4W_cAziEY_–wbY_1otw44XEBv7JA/