public delegate void TraceListenerHandler(object sender, EventArgs args);
public class MyTraceListener : TraceListener {
EventHandler handler;
public MyTraceListener(EventHandler handler) {
this.handler = handler;
}
public override void Write(string message) {
handler(this, new EventArgs());
}
public override void WriteLine(string message) {
handler(this, new EventArgs());
}
}
[TestFixture]
public class FooTestFixture {
Foo foo;
bool assertSuccessful;
MyTraceListener listener;
public FooTestFixture() { }
[SetUp]
public void SetUp() {
assertSuccessful = true;
listener = new MyTraceListener(
delegate(object sender, EventArgs args) { assertSuccessful = false; });
Debug.Listeners.Add(listener);
}
[TearDown]
public void TearDown() {
Debug.Listeners.Remove(listener);
}
[Test]
public void DebugAssertCausesValidationFailure() {
Assert.IsTrue(assertSuccessful);
try {
foo = new Foo(null);
} catch { }
Assert.IsFalse(assertSuccessful);
}
}