Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 99763
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T00:26:59+00:00 2026-05-11T00:26:59+00:00

I’m working on a project where there is a lot of external service messaging.

  • 0

I’m working on a project where there is a lot of external service messaging. A good way to describe it in only a slightly ‘hyperbolas’ way would be an application where the system has to send messages to the Flicker API, the Facebook API, and the Netflix API.

To support disconnected scenarios, logging concerns, developer usability, configuration, etc… I’ve experimented using an approach which heavily uses generics and expression trees. The end result looks like this:

Messenger<NetflixApi>.SendCustom( netflix => netflix.RecommendMovie('my message')); 

Overall I’m happy with the end result but feel like I’ve made a mistake, or overlooked a design principal someplace with regards to testing and disconnected scenarios.

During testing, whether automated, unit, or human based, I’ve implemented an object factory that initially uses DI to perform the correct action in ‘Live mode’ and used Mocks to provide a sort of sterile messenger that doesn’t do anything at all when in a testing mode.

I’ve only seen or read about Mocks being used in pure TDD mode and not being used to be sort of a dumb object. The approaches I’ve seen would revolve around stubbing or mocking out the HTTP communication functionality which all the APIs I’m using depend on.

My main concern is that will all the different services I expect to connect to I’d end up having to do a lot of granular work substituting specific HTTP implementation and if I used a stub approach I’d have 3 classes for each of these services( IService, ConcreteService, StubService ) and maintaining those when implementing a new method or changing anything would be a real PITA.

In the current implementation I’m using Mocks to get ‘sterile mode’ for free almost without having to implement anything extra just to conform to a certain testing principal.

The question is am I missing something? Did I violate a design principal using Mocks in a more… convenient way?

Can anybody offer any advice on how to get a sterile mode out of many different outside services without jumping through a lot of hoops?

Does this question make sense?

Thanks for all the answers.

Edit #1:

I wasn’t clear in my original question. Any null or mock objects are to be used purely in a development/debug/testing environment. In production the code that sends these messages will be the actual implementation of them.

I voted everybody up because there seem to be a lot of different solutions to this problem and I’ll be exploring each one.

Please don’t think this question has been answered yet, I’d appreciate as much advice as I can get.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T00:27:00+00:00Added an answer on May 11, 2026 at 12:27 am

    There is a design pattern called Null Object. A null object is an object that implements a Interface, so it could be used in an scenario like yours.

    The important thing about the Null Object is that DON’T return null in places where that could break the system.

    The purpose of the Null Object is to have a void and simple implementation of something, just like a Mock, but to be used in the production environment.

    The most simple example is something like this:

    class Logger{  private static ILogger _Logger;   static Logger(){   //DI injection here   _Logger = new NullLogger(); //or   _Logger = new TraceLogger();  } }  interface ILogger{  void Log(string Message); }  internal class TraceLogger:ILooger{  public void Log(string Message){   //Code here  } }  internal class NullLogger{  public void Log(string Message){   //Don't don anything, in purporse  } } 

    I hope this could help you

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 66k
  • Answers 66k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • added an answer Internal applications have one goal: support the process. If the… May 11, 2026 at 11:24 am
  • added an answer There's a new debugger called De MonsterDebugger. A bunch of… May 11, 2026 at 11:24 am
  • added an answer I suggest a LinkedHashMap or a TreeMap. A LinkedHashMap keeps… May 11, 2026 at 11:24 am

Related Questions

I keep getting tasks that are above my skill level. How can I address this without coming accross as grossly incompetent?
I have a web-service that I will be deploying to dev, staging and production.
I'm thinking of starting a wiki, probably on a low cost LAMP hosting account.
I have the following tables in my database that have a many-to-many relationship, which
I'm using the RESTful authentication Rails plugin for an app I'm developing. I'm having
I recently printed out Jeff Atwood's Understanding The Hardware blog post and plan on
I find that getting Unicode support in my cross-platform apps a real pain in
I would like to test a string containing a path to a file for
I'm getting this problem: PHP Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable
I'm an Information Architect and JavaScript developer by trade nowadays, but recently I've been

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.