# integration test

Published articles for integration test.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## From HTTP MCP to stdio: Lessons Connecting an AI Agent to a Desktop IDE

DevFeed: [From HTTP MCP to stdio: Lessons Connecting an AI Agent to a Desktop IDE](<https://devfeed.tech/articles/from-http-mcp-to-stdio-lessons-connecting-an-ai-agent-to-a-desktop-ide-25420.md>)

Original publisher: [Read original article](<https://jonnyzzz.com/blog/2026/05/20/http-mcp-to-stdio-lessons/>)

Author: Eugene Petrenko

Published: 2026-05-20T00:00:00Z

Content type: article

Language: en

Sources: [Eugene Petrenko](<https://devfeed.tech/sources/eugene-petrenko.md>)

Topics: [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>)

Tags: [agentic-coding](<https://devfeed.tech/tags/agentic-coding.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [claude](<https://devfeed.tech/tags/claude.md>), [cli](<https://devfeed.tech/tags/cli.md>), [codex](<https://devfeed.tech/tags/codex.md>), [devrig](<https://devfeed.tech/tags/devrig.md>), [docker-image](<https://devfeed.tech/tags/docker-image.md>), [eugene-petrenko](<https://devfeed.tech/tags/eugene-petrenko.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [jonnyzzz](<https://devfeed.tech/tags/jonnyzzz.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-steroid](<https://devfeed.tech/tags/mcp-steroid.md>), [report](<https://devfeed.tech/tags/report.md>), [tag-41199d53f463](<https://devfeed.tech/tags/tag-41199d53f463.md>)

### AI overview

This article explains why an HTTP MCP server embedded in a desktop IntelliJ application proved unreliable on real workstations. It describes moving to stdio with a CLI coordinator called devrig, and emphasizes integration tests for the MCP layer, including issues involving dynamic ports, startup ordering, multiple IDEs, and mismatched transport support.

### Source excerpt

The obvious way to connect an AI Agent to a running IntelliJ is an HTTP MCP server inside the IDE. I built it, shipped it, and used it daily -- and it kept breaking on real workstations: dynamic ports, start-order lottery, multiple IDEs, and the agent-up/IDE-down dead end. Here is why I moved the whole thing to stdio and a CLI coordinator called devrig, and what the journey taught me.

## Faster and cheaper NixOS integration tests with containers

DevFeed: [Faster and cheaper NixOS integration tests with containers](<https://devfeed.tech/articles/faster-and-cheaper-nixos-integration-tests-with-containers-32435.md>)

Original publisher: [Read original article](<https://nixcademy.com/posts/faster-cheaper-nixos-integration-tests-with-containers/>)

Author: Jacek Galowicz

Published: 2026-03-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Nixcademy Blog](<https://devfeed.tech/sources/nixcademy-blog.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Nix](<https://devfeed.tech/topics/nix.md>), [qemu](<https://devfeed.tech/topics/qemu.md>)

Tags: [containers](<https://devfeed.tech/tags/containers.md>), [faster](<https://devfeed.tech/tags/faster.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article introduces a container backend for the NixOS integration test driver as an alternative to its QEMU-based tests. It explains that container tests can reduce startup time and memory use, lower infrastructure requirements, and simplify GPU passthrough in cases where full virtual-machine isolation is unnecessary.

### Source excerpt

The new container support in the NixOS integration test driver allows for faster and lighter testing, let's see how it works!

## Run NixOS Integration Tests on macOS

DevFeed: [Run NixOS Integration Tests on macOS](<https://devfeed.tech/articles/run-nixos-integration-tests-on-macos-32451.md>)

Original publisher: [Read original article](<https://nixcademy.com/posts/running-nixos-integration-tests-on-macos/>)

Author: Jacek Galowicz

Published: 2024-03-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Nixcademy Blog](<https://devfeed.tech/sources/nixcademy-blog.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [Python](<https://devfeed.tech/topics/python.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [python](<https://devfeed.tech/tags/python.md>), [qemu](<https://devfeed.tech/tags/qemu.md>)

### AI overview

This tutorial explains how to run NixOS integration tests on macOS. The setup uses normal NixOS virtual machines while qemu and the Python test driver run natively on macOS, with a Linux Builder and required Nix capability flags.

### Source excerpt

NixOS integration now run on macOS! Learn how to set it up and run complex integration tests on your Mac today!

## Introduction to the NixOS Integration Test Driver

DevFeed: [Introduction to the NixOS Integration Test Driver](<https://devfeed.tech/articles/unveiling-the-power-of-the-nixos-integration-test-driver-part-1-32444.md>)

Original publisher: [Read original article](<https://nixcademy.com/posts/nixos-integration-tests/>)

Author: Jacek Galowicz

Published: 2023-10-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Nixcademy Blog](<https://devfeed.tech/sources/nixcademy-blog.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [integration-test](<https://devfeed.tech/tags/integration-test.md>), [python](<https://devfeed.tech/tags/python.md>), [qemu](<https://devfeed.tech/tags/qemu.md>)

### AI overview

An introductory guide to the NixOS Integration Test Driver, covering declarative test configurations, virtual machines and networks, and Python-based test workflows.

### Source excerpt

This guide explores how to efficiently run the blazingly fast NixOS integration tests, orchestrate multiple VMs, and leverage Python scripting.

## How to setup remote docker host

DevFeed: [How to setup remote docker host](<https://devfeed.tech/articles/how-to-setup-remote-docker-host-27332.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/202209/remote-docker/>)

Published: 2022-09-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [Image](<https://devfeed.tech/topics/image.md>), [docker images](<https://devfeed.tech/topics/docker-images.md>), [Testcontainers](<https://devfeed.tech/topics/testcontainers.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [x86](<https://devfeed.tech/topics/x86.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [aws](<https://devfeed.tech/tags/aws.md>), [containers](<https://devfeed.tech/tags/containers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-images](<https://devfeed.tech/tags/docker-images.md>), [ec2](<https://devfeed.tech/tags/ec2.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [linux](<https://devfeed.tech/tags/linux.md>), [remote](<https://devfeed.tech/tags/remote.md>), [tls](<https://devfeed.tech/tags/tls.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

This tutorial explains how to set up a remote Docker host for integration tests when required ARM images are unavailable. It uses a Linux x86_64 AWS EC2 machine, configures TLS access to the Docker daemon, and connects a local Docker client to the remote host.

### Source excerpt

Not all docker images are available for ARM architecture (hopefully this will improve over time). Right now I'm working on a project where images for ARM are not available. Emulation works ok (but slow) most of the time. Lately, I stumbled upon an interesting performance/startup issue when running amd64-based containers using testcontainers in an integration test. Read more

## How to Integration Test Stored Procedures with jOOQ

DevFeed: [How to Integration Test Stored Procedures with jOOQ](<https://devfeed.tech/articles/how-to-integration-test-stored-procedures-with-jooq-28942.md>)

Original publisher: [Read original article](<https://blog.jooq.org/how-to-integration-test-stored-procedures-with-jooq/>)

Author: lukaseder

Published: 2022-08-22T12:36:00Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Database](<https://devfeed.tech/topics/database.md>), [Testcontainers](<https://devfeed.tech/topics/testcontainers.md>), [Java](<https://devfeed.tech/topics/java.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-generation](<https://devfeed.tech/tags/code-generation.md>), [database](<https://devfeed.tech/tags/database.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [java](<https://devfeed.tech/tags/java.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [junit](<https://devfeed.tech/tags/junit.md>), [maven](<https://devfeed.tech/tags/maven.md>), [stored-procedures](<https://devfeed.tech/tags/stored-procedures.md>), [testcontainers](<https://devfeed.tech/tags/testcontainers.md>), [unit-test](<https://devfeed.tech/tags/unit-test.md>)

### AI overview

This tutorial explains how to integration-test database stored procedures and functions with Java, jOOQ, Testcontainers, and JUnit. It shows how to run PostgreSQL in Testcontainers, generate jOOQ classes for stored procedures, and reuse Java test infrastructure instead of manually binding to procedures through JDBC.

### Source excerpt

When you write stored procedures and functions in your database, you want to ensure their correctness, just like with your Java code. In Java, this is done with unit tests, typically with JUnit. For example, if you have the following code in Java: Then, you might write a test like this: But how do we ... Continue reading How to Integration Test Stored Procedures with jOOQ ->

## Effective Kotlin Item 46: Avoid member extensions

DevFeed: [Effective Kotlin Item 46: Avoid member extensions](<https://devfeed.tech/articles/effective-kotlin-item-46-avoid-member-extensions-39283.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-member-extensions>)

Published: 2021-07-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [function](<https://devfeed.tech/topics/function.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [dsls](<https://devfeed.tech/tags/dsls.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [function](<https://devfeed.tech/tags/function.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [visibility-modifier](<https://devfeed.tech/tags/visibility-modifier.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This article explains how Kotlin member extension functions work and why they are generally discouraged. It recommends controlling visibility with visibility modifiers and identifies DSL builders, scope-related functions, and some integration test patterns as appropriate exceptions.

### Source excerpt

What member extensions are, how they are possible and why we should avoid using them.

## Integration Tests with Jest, Supertest, Knex, and Objection in TypeScript

DevFeed: [Integration Tests with Jest, Supertest, Knex, and Objection in TypeScript](<https://devfeed.tech/articles/integration-tests-with-jest-supertest-knex-and-objection-in-typescript-37595.md>)

Original publisher: [Read original article](<https://www.taniarascia.com/integration-testing-with-jest-typescript-objection/>)

Author: hello@taniarascia.com

Published: 2021-04-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tania Rascia](<https://devfeed.tech/sources/tania-rascia.md>)

Topics: [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Jest](<https://devfeed.tech/topics/jest.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [API](<https://devfeed.tech/topics/api.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [Express](<https://devfeed.tech/topics/express.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [migration](<https://devfeed.tech/topics/migration.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [database-migration](<https://devfeed.tech/tags/database-migration.md>), [express](<https://devfeed.tech/tags/express.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [jest](<https://devfeed.tech/tags/jest.md>), [node](<https://devfeed.tech/tags/node.md>), [orm](<https://devfeed.tech/tags/orm.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This article presents an approach to integration testing for a TypeScript Node/Express API using Jest, Supertest, Knex, and Objection.js. It covers test setup and teardown, database creation, migrations, seeding, real API calls, and successful and error responses.

### Source excerpt

Recently, I set up unit and integration tests for a Node API in TypeScript, and I couldn't find a lot of resources for setting up and...

## Test naming convention

DevFeed: [Test naming convention](<https://devfeed.tech/articles/test-naming-convention-27302.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/201903/test-names-conventions/>)

Published: 2019-03-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [Automation](<https://devfeed.tech/topics/automation.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [automated](<https://devfeed.tech/tags/automated.md>), [automation](<https://devfeed.tech/tags/automation.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [database](<https://devfeed.tech/tags/database.md>), [excel](<https://devfeed.tech/tags/excel.md>), [ide](<https://devfeed.tech/tags/ide.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [tests](<https://devfeed.tech/tags/tests.md>), [verify](<https://devfeed.tech/tags/verify.md>)

### AI overview

This tutorial explains how to use automated tests to enforce naming conventions for test groups. It distinguishes fast unit tests from integration tests involving I/O, databases, external APIs, reports, and Excel imports, and argues that convention checks can serve as both automated enforcement and living documentation.

### Source excerpt

How to introduce automated checks that will guarantee that conventions are followed in an example of test naming convention. I'm going to focus on creating automated process that will verify if test names do match conventions. Automation will allow us to forget about the rule because the computer will ensure it's followed. Test that I'm going to introduce will be living documentation inside the project and ensure no one will miss nor forget about the way we group tests. Read more

## Managing db schema changes without downtime

DevFeed: [Managing db schema changes without downtime](<https://devfeed.tech/articles/managing-db-schema-changes-without-downtime-41346.md>)

Original publisher: [Read original article](<https://samsaffron.com/archive/2018/03/22/managing-db-schema-changes-without-downtime>)

Author: Sam Saffron

Published: 2018-03-22T06:30:05Z

Content type: article

Language: en

Sources: [Sam Saffron](<https://devfeed.tech/sources/sam-saffron.md>)

Topics: [Database Migration](<https://devfeed.tech/topics/database-migration.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [activerecord](<https://devfeed.tech/tags/activerecord.md>), [commit](<https://devfeed.tech/tags/commit.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [database](<https://devfeed.tech/tags/database.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [outage](<https://devfeed.tech/tags/outage.md>), [schema](<https://devfeed.tech/tags/schema.md>)

### AI overview

This article explains how database schema changes can cause deployment outages, especially when older application instances remain active and ActiveRecord caches schema information. It describes Discourse's use of richer migration logging and deployment patterns to reduce these risks.

### Source excerpt

At Discourse we have always been huge fans of continuous deployment. Every commit we make heads to our continuous integration test suite. If all the tests pass (ui, unit, integration, smoke) we automatically deploy the latest version of our code to https://meta.discourse.org. This pattern and practice we follow allows the thousands of self-installers out there to safely upgrade to the tests-passed version whenever they feel like it. Because we deploy so often we need to take extra care not to have any outages during deployments. One of the most common reasons for outages during application deployment is database schema changes. The problem with schema changes Our current deployment mechanism roughly goes as follows: Migrate database to new schema Bundle up application into a single docker image Push to registry Spin down old instance, pull new instance, spin up new instance (and repeat) If we ever create an incompatible database schema we risk breaking all the old application instances running older versions of our code. In practice, this can lead to tens of minutes of outage! In ActiveRecord the situation is particularly dire cause in production the database schema is cached and any changes in schema that drop or rename columns very quickly risk breaking every query to the affected model raising invalid schema exceptions. Over the years we have introduced various patterns to overcome this problem and enable us to deploy schema changes safely, minimizing outages. Tracking rich information about migrations ActiveRecord has a table called schema_migrations where it stores information about migrations that ran. Unfortunately the amount of data stored in this table is extremely limited, in fact it boils down to: connection.create_table(table_name, id: false) do |t| t.string :version, version_options end The table has a lonely column storing the "version" of migrations that ran. It does not store when the migration ran It does not store how long it took the migration to

## On behavior verifications

DevFeed: [On behavior verifications](<https://devfeed.tech/articles/on-behavior-verifications-27280.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/201709/behavior-verifications/>)

Published: 2017-09-06T00:00:00Z

Content type: article

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Smoke Tests](<https://devfeed.tech/topics/smoke-tests.md>)

Tags: [integration-test](<https://devfeed.tech/tags/integration-test.md>), [mocking](<https://devfeed.tech/tags/mocking.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

A developer recounts refactoring springmock after its double-definition parsing class accumulated responsibilities. The article explains the resulting test failures and recommends incremental refactoring, integration or smoke tests, and verifying behavior through tests.

### Source excerpt

When I've got some free time I try to add new features to springmock. Lately, after adding some new stuff I realized that double definition parsing class has more than one responsibility (class parsing, naming, definition creation, etc). So I've decided it's time to refactor it and split responsibilities into dedicated classes. Once I did that and tests in the shared kernel started to pass I executed mvn verify just to be sure that everything was working and it wasn't... Read more

## Write that first complicated test

DevFeed: [Write that first complicated test](<https://devfeed.tech/articles/write-that-first-complicated-test-26279.md>)

Original publisher: [Read original article](<https://www.justinweiss.com/articles/write-that-first-complicated-test/>)

Author: Justin Weiss

Published: 2017-03-01T05:05:56Z

Content type: tutorial

Language: en

Sources: [Justin Weiss](<https://devfeed.tech/sources/justin-weiss.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [unit test](<https://devfeed.tech/topics/unit-test.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Git](<https://devfeed.tech/topics/git.md>), [networking](<https://devfeed.tech/topics/networking.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [code](<https://devfeed.tech/tags/code.md>), [git](<https://devfeed.tech/tags/git.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [unit-test](<https://devfeed.tech/tags/unit-test.md>)

### AI overview

This article explains how to approach testing complicated code involving threads, commands, Git, networking, or user interfaces. It recommends investing in fakes, mocks, fixtures, and test-specific configuration, and using integration tests as a practical starting point when fast unit tests are difficult to write.

### Source excerpt

What code of yours isn't tested? Is it code that deals with complicated situations that you don't control? Threads, running commands, git, networking, or UI? Our apps are most interesting when they're complicated. They're also most dangerous. And that's why code that's hard to test is exactly the kind of code that needs to be tested well. That doesn't always happen. Instead, every time you touch that code, you touch lightly. You tread carefully. Maybe you do some manual testing. And when you send the pull request, you hope your teammates don't realize those tests don't exist. But that won't make things better. You'll run into the same problems, the same bugs, the same stress next time - and every time after that. How can you finally make those challenging tests something you can rely on? Shift your mindset The most frustrating thing about these tests? It's going to take ten times as long to write it as it feels like it should. If you estimate the time the test saves you against the time you spend writing the test, it just doesn't seem worth it. But it's not just about this test. It's about all your future tests. Most of the best-tested code I've seen has a lot of support. It's not just the code in test/models. Extremely well-tested code has fakes, it has mocks, it has a good set of test fixtures, it has configuration options specifically for the tests. All that takes time to write and put together. But once you have it, it feels so good. You can come up with test after test, feeling comfortable about your code, and confident in quickly you can move after the investment you've made. You can rely on the work you've already done. So it's not just about preventing bugs in complicated code. It's also about making future code easier to test, piece by piece. Make it an integration test (for now) Sometimes, though, it's not about understanding the value - I get it. Instead, I just get stuck because I can't figure out how to write a small, fast, unit test. How do you know yo

## Screencast: Using Pretender to mock a server with Ember.js

DevFeed: [Screencast: Using Pretender to mock a server with Ember.js](<https://devfeed.tech/articles/screencast-using-pretender-to-mock-a-server-with-ember-js-40632.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2014-08-26-pretender/>)

Published: 2014-08-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Ember](<https://devfeed.tech/topics/ember.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [test](<https://devfeed.tech/topics/test.md>), [Library](<https://devfeed.tech/topics/library.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [branch](<https://devfeed.tech/tags/branch.md>), [ember](<https://devfeed.tech/tags/ember.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [js](<https://devfeed.tech/tags/js.md>), [library](<https://devfeed.tech/tags/library.md>), [login](<https://devfeed.tech/tags/login.md>), [mock](<https://devfeed.tech/tags/mock.md>)

### AI overview

A screencast demonstrates how to use Pretender, a JavaScript mock server library, in an Ember.js integration test. The source code for the login application is available on GitHub, with the finished version in the pretender branch.

### Source excerpt

Recently I fell in love with Pretender, the mock server library in Javascript, so I decided to record a screencast showing how to use it in an Ember.js integration test: The source code for the login application is on github. The finished version is in the pretender branch.

## Creating an Integration test in Ember.js (Screencast)

DevFeed: [Creating an Integration test in Ember.js (Screencast)](<https://devfeed.tech/articles/creating-an-integration-test-in-ember-js-screencast-40630.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2014-06-27-integration-testing/>)

Published: 2014-06-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Ember](<https://devfeed.tech/topics/ember.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [boilerplate](<https://devfeed.tech/tags/boilerplate.md>), [ember](<https://devfeed.tech/tags/ember.md>), [ember-cli](<https://devfeed.tech/tags/ember-cli.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [js](<https://devfeed.tech/tags/js.md>)

### AI overview

A screencast tutorial explains how to set up integration testing in an Ember.js application with ember-cli, including the boilerplate required at the top of integration test files.

### Source excerpt

Once upon a time it used to be difficult to create integration tests in Ember.js. Fortunately, the framework has come a long way and it's now really easy to get integration testing working in your application. This screencast shows how to set it up with ember-cli: There is some boilerplate code required that you'll need at the top of your integration test files if you want to do it yourself. Here it is:

## Automocking containers are not just for mocks

DevFeed: [Automocking containers are not just for mocks](<https://devfeed.tech/articles/automocking-containers-are-not-just-for-mocks-33366.md>)

Original publisher: [Read original article](<https://timkellogg.me/blog/2011/04/13/automocking-containers-are-not-just-for>)

Published: 2011-04-13T00:00:00Z

Content type: opinion

Language: en

Sources: [Tim Kellogg](<https://devfeed.tech/sources/tim-kellogg.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>), [IoC (Disambiguation)](<https://devfeed.tech/topics/ioc.md>)

Tags: [component](<https://devfeed.tech/tags/component.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

The article argues that automocking containers can support partially mocked integration tests, not only unit tests using mocks. It describes MoqContrib's approach of favoring the last registered component, allowing tests to start with production implementations and replace selected components with mocks, or override mocks with production implementations.

### Source excerpt

In my last post I introduced MoqContrib's automocking container. In this post I want to describe what sets it apart from MoqContrib's previous automocking container and all other automocking containers that I've heard of thus far.A Castle.Windsor contributor said that for unit tests, "it's recommended that you don't use the container at all, or if the test setup gets too dense because of dependencies, use an AutoMockingContainer." This is in response to a stack overflow question regarding how to remove components in order to replace them with mocks. There are others that agree with him.I don't agree with Mauricio or Derek (from the links above). I strongly believe that there are several reasons to let an automocking container have real services registered that aren't mocks. The primary reason is for integration tests. This is where you are testing a system of modules, a subset of the entire system, but you still need to isolate those modules to just the system under test (SUT). So while the dependencies within the SUT are going to be implemented with real implementations, everything else is mocked. This is a partially mocked situation.One of the big reasons to use an automocking container is just to simplify everything. Sure, you're setups are starting to get pretty long for unit tests, but sometimes you run into issues where there is already a component registered so you can't register a mock without first removing the original component. This is very tedious and totally ruins any love you might have had for your IoC container.In MoqContrib 1.0 the container will favor the last component registered over everything else. This is handy because you can do setups by exception. For an integration test fixture you can setup everything as a production implementation and then just mock components as needed. You can also do it the other way and just override with production implementations. I believe this will lead to much cleaner tests and much less time tracking down "how