Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Hands-On Full-Stack Development with Swift

You're reading from   Hands-On Full-Stack Development with Swift Develop full-stack web and native mobile applications using Swift and Vapor

Arrow left icon
Product type Paperback
Published in Mar 2018
Publisher Packt
ISBN-13 9781788625241
Length 356 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Ankur Patel Ankur Patel
Author Profile Icon Ankur Patel
Ankur Patel
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Getting Started with Server Swift 2. Creating the Native App FREE CHAPTER 3. Getting Started with Vapor 4. Configuring Providers, Fluent, and Databases 5. Building a REST API using Vapor 6. Consuming API in App 7. Creating Web Views and Middleware 8. Testing and CI 9. Deploying the App 10. Adding Authentication 11. Building a tvOS App 12. Other Books You May Enjoy

Testing RESTful routes


So far, we have added tests for routes. Now, let's take a look at how we can test our ShoppingListController. To test our controller, we would need to write test for each of the RESTful actions and assert that the result at the end of the action is as expected. To make our code modular, it would be good to create a separate test file for these tests. So, to get started writing tests for our Shopping List Controller, follow these steps:

  1. Create a new empty file called ShoppingListControllerTests.swift inside the Tests/AppTests folder and make sure that you add it to the AppTests target.
  2. Inside this file, add the following lines of code; this will import the required modules for testing, and we will define our test class:
import XCTest
import Foundation
import Testing
import HTTP
@testable import Vapor
@testable import App

class ShoppingListControllerTests: TestCase {
  let drop = try! Droplet.testable()

  override func tearDown() {
    super.tearDown()
    try! ShoppingList...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime