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 282293
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T05:16:35+00:00 2026-05-12T05:16:35+00:00

I’m looking for some advice for unit-testing in a manner that doesn’t leave test

  • 0

I’m looking for some advice for unit-testing in a manner that doesn’t leave “test hooks” in place in production code.

Let’s say I have a static class (VB.NET Module) named MethodLogger who has a “void WriteEntry(string Message)” method that is intended to write the calling method and a message to a log file on disk. The actual target of WriteEntry() can be diverted to a fake implementation of IMethodLogger for running unit tests, and for all other cases it should call the real implementation of IMethodLogger.

Here’s a rough-cut of what I’ve whipped up so far, and I like the approach–but in some quick tests it raises some questions and doubts:

[InternalAttributesVisibleTo("MethodLogger.Tests")]
internal static class MethodLogger
{
    public void WriteEntry(string message)
    {
        LogWriter.WriteEntry(message);
    }

    private IMethodLogger LogWriter
    {
        get;
        set;
    }

#if DEBUG
    internal void SetLogWriter(IMethodLogger logger)
    {
        LogWriter = logger;
    }
#endif
}

Here’s my specific questions:

  • This tightly couples the unit tests to running against the DEBUG build; when I run unit tests though it appears that it doesn’t specifically rebuild the assembly under test in DEBUG–is it possible to do so?

    • Would I ever want to run the unit tests against a non-debug build? Off the top of my head I see less value–but would there be?
  • Would it be possible for me to use a custom pre-compiler flag like “TEST” in lieu of “DEBUG”? How would I go about telling Visual Studio to always rebuild the target with this flag for testing to ensure my hooks / seams are available?

  • 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. Editorial Team
    Editorial Team
    2026-05-12T05:16:35+00:00Added an answer on May 12, 2026 at 5:16 am

    I don’t like the idea of not being able to run the tests against the real production binaries, personally.

    Could you not just mark the setter as “obsolete” and disable the obsolete warning in your test code? Along with suitable documentation, that should stop production code from accidentally calling it, but still make it available to tests.

    However, to address your actual questions:

    • Yes, it makes sense to run unit tests against non-debug builds – it gives more confidence that changes between debug and non-debug builds don’t break anything.
    • Yes, you can use your own pre-processor symbol (such as TEST) if you want; you could either apply that in the existing configurations or create a new build configuration.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

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

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

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

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

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer this appears to be a clever transformation of the Long… May 12, 2026 at 4:39 pm
  • Editorial Team
    Editorial Team added an answer You could do a two-step approach (whether that's possible in… May 12, 2026 at 4:39 pm
  • Editorial Team
    Editorial Team added an answer First, you need this method to convert the String to… May 12, 2026 at 4:39 pm

Related Questions

I'm trying to decode HTML entries from here NYTimes.com and I cannot figure out
I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
In order to apply a triggered animation to all ToolTip s in my app,
I have a French site that I want to parse, but am running into
I have text I am displaying in SIlverlight that is coming from a CMS

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.