I know this question has been here for a long time, however the answer is as follows:
When you write a trace event through TraceSource, it calls the TraceEvent tracer to execute the trace - so you need to check the listener.TraceEvent calls, not listener.WriteLine ...
var mock = new Mock<TraceListener>(); var ts = new TraceSource("traceSourceName", SourceLevels.Verbose); ts.Listeners.Add(mock.Object); var message = "the message"; ts.TraceEvent(TraceEventType.Verbose, 0, message); mock.Verify(x => x.TraceEvent(It.IsAny<TraceEventCache>(), "traceSourceName", TraceEventType.Verbose, 0, message), Times.Once(), "Expected a trace");
Hope this helps someone!
Greetings
Morgan
source share