Introduction Testing code that depends on external services and APIs, e.g. the GitHub API, has a variety of challenges. Writing tests that make real HTTP requests to these services may be error-prone due to issues such as network connectivity, API changes, rate limiting and so on. Nock allows us to avoid these challenges by intercepting […]
Category Software Engineering
Dockerizing Elixir and Phoenix Applications
Introduction Phoenix lends itself to rapid and productive workflows when building Elixir web services, and the Mix tool provides extensible automation of repeated tasks such as compiling code and running tests. However, containerization can be helpful when we want to build and run a release along with its supporting infrastructure. In this tutorial, we’ll learn […]
Continuous Deployment with Docker, AWS, and Ansible
Introduction You’ve built some Docker images and made something locally. Now it’s time to go to production β and you’re stuck. This is not uncommon. There are quite a few articles out there about using Docker in a development environment. However, running Docker in production could still use a detailed explanation. This tutorial will take […]
Continuous Delivery of Docker Images with Quay and Semaphore
Running code in different environments can often produce unexpected behavior. Development and testing environments strive to replicate production envrionments as closely as possible, but there’s still much to be desired. This is where containers come in. When using Docker-based deployments, environments for development, staging and production are virtually the same, and they can be rapidly […]
A TDD Approach to Building a Todo API Using Node.js and MongoDB
Note that this tutorial is no longer considered valid as it does not match our quality standards. Introduction Testing is an integral part of the software development process which helps improve the quality of the software. There are many types of testing involved like manual testing, integration testing, functional testing, load testing, unit testing, and […]
Testing REST Endpoints Using REST Assured
Introduction Having a large collection of unit tests that verify the behaviour of Java classes is only the first step to a sound testing strategy. After all, the fact that individual Java classes work successfully in isolation does not mean that the application itself will also work correctly ,when all these classes are bundled together. […]
Continuous Delivery of Docker Images with Google Container Registry and Semaphore
As more and more developers see the benefit in delivering their apps through containers, managing Docker images is becoming increasingly important. Google Container Registry (GCR) provides a way to handle this need in a simple and secure way.
Test-Driving Ember.js CRUD Operations
Introduction This tutorial is the fifth part of our series on test-driving an Ember.js application. In this series, we have been building a complete application using Ember.js and Ruby on Rails. The premise of our application is a digital bookcase, where we can keep track of all the books we own. If you’ve finished the […]
Continuous Delivery of Docker Images with Docker Hub and Semaphore
With the rapidly growing use of microservices, fast and scalable image distribution has become a critical aspect of the software development practice. If youβre using Docker for developing your applications, youβre already familiar with container registries such as Docker’s own Docker Hub. Container registries are used to store, fetch, or deploy Docker images quickly and […]
How to Use Godog for Behavior-driven Development in Go
Introduction No matter in what language youβre developing, thereβs likely to be a range of testing frameworks available. The same goes for Go β you can either use go test or one of the third-party packages such as Ginkgo, Goblin, and GoConvey. All of these are powerful testing frameworks to use when developing software applications […]
Continuous Delivery of Docker Images with Amazon ECR and Semaphore
Dockerβs increasing popularity and the move toward microservices grew the need for container registries such as the Amazon EC2 Container Registry (ECR). Cloud-based container registries provide an easy way to store, retrieve or deploy Docker images in a fast and scalable way. Amazon ECR is one of the most popular services for storing and keeping […]
A TDD Approach to Parsing OFX Banking Data in Java
Introduction Checking assumptions is important both when it comes to working with code and with finances. To build reliable software, we need to set, and then double-check our assumptions through tests. When dealing with finances, it is also important to verify assumptions and analyze transactions. Most banks offer the possibility to export data about transactions […]
Continuous Integration and Deployment for Docker
This week, we are more than thrilled to announce that Semaphore now officialy supports Docker. The service update, immediately available to all Semaphore users, brings full technical capabilities of using Docker and additions to the user interface with the goal of simplifying your continuous integration and delivery workflow.
Getting Started with TDD in React
Introduction You’ve spent some time with React, maybe even written a few tests. But you’re not really sure how best to test your components. Where do you start? What exactly do you test? Some React components seem so simple that it’s not even clear whether they need tests at all. If you’ve come to React […]
How to Perform Integration Testing on Go Applications with Docker
Introduction One of the reasons behind the popularity of Go is its testing story. Go comes with a lightweight test framework that makes it trivial to write different kinds of tests. In this tutorial, you will learn how to perform integration testing with Go. We will create a sample application, which will make use of […]