Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tree: feafbc3887
Fetching contributors…

Cannot retrieve contributors at this time

77 lines (65 sloc) 3.09 KB
// GTMUnitTestDevLog.h
// Copyright 2008 Google Inc.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy
// of the License at
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
#import "GTMDefines.h"
#import <Foundation/Foundation.h>
// GTMUnitTestDevLog tracks what messages are logged to verify that you only
// log what you expect to log during the running of unittests. This allows you
// to log with impunity from your actual core implementations and still be able
// to find unexpected logs in your output when running unittests.
// In your unittests you tell GTMUnitTestDevLog what messages you expect your
// test to spit out, and it will cause any that don't match to appear as errors
// in your unittest run output. You can match on exact strings or standard
// regexps.
// Set GTM_SHOW_UNITTEST_DEVLOGS in the environment to show the logs that that
// are expected and encountered. Otherwise they aren't display to keep the
// unit test results easier to read.
@interface GTMUnitTestDevLog : NSObject
// Log a message
+ (void)log:(NSString*)format, ...;
+ (void)log:(NSString*)format args:(va_list)args;
// Turn tracking on/off
+ (void)enableTracking;
+ (void)disableTracking;
+ (BOOL)isTrackingEnabled;
// Note that you are expecting a string that has an exact match. No need to
// escape any pattern characters.
+ (void)expectString:(NSString *)format, ...;
// Note that you are expecting a pattern. Pattern characters that you want
// exact matches on must be escaped. See [GTMRegex escapedPatternForString].
// Patterns match across newlines (kGTMRegexOptionSupressNewlineSupport) making
// it easier to match output from the descriptions of NS collection types such
// as NSArray and NSDictionary.
+ (void)expectPattern:(NSString *)format, ...;
// Note that you are expecting exactly 'n' strings
+ (void)expect:(NSUInteger)n casesOfString:(NSString *)format, ...;
// Note that you are expecting exactly 'n' patterns
+ (void)expect:(NSUInteger)n casesOfPattern:(NSString*)format, ...;
+ (void)expect:(NSUInteger)n casesOfPattern:(NSString*)format args:(va_list)args;
// Call when you want to verify that you have matched all the logs you expect
// to match. If your unittests inherit from GTMTestcase (like they should) you
// will get this called for free.
+ (void)verifyNoMoreLogsExpected;
// Resets the expected logs so that you don't have anything expected.
// In general should not be needed, unless you have a variable logging case
// of some sort.
+ (void)resetExpectedLogs;
// Does the same as GTMUnitTestDevLog, but the logs are only expected in debug.
// ie-the expect requests don't count in release builds.
@interface GTMUnitTestDevLogDebug : GTMUnitTestDevLog
Jump to Line
Something went wrong with that request. Please try again.