package org.test4j.module.jmockit; import mockit.Mocked; import org.junit.Test; import org.test4j.hamcrest.matcher.string.StringMode; import org.test4j.junit.Test4J; import org.test4j.module.spring.annotations.AutoBeanInject; @SuppressWarnings("unused") @AutoBeanInject public class JMockitTest_NewDelegate extends Test4J { @Mocked IPrinter printer; /** * 验证jMockit的断言异常不会被覆盖 */ @Test public void testNewDelegate() { new Expectations() { { printer.print(any(String.class)); result = new Delegate() { public void print(String text) { want.string(text).eq("one1"); } }; printer.print(any(String.class)); result = new Delegate() { public void print(String text) { want.string(text).eq("two"); } }; } }; try { printer.print("one"); want.fail(); } catch (AssertionError error) { String message = error.getMessage(); want.string(message).eq("Expected: \"one1\" but: was \"one\"", StringMode.IgnoreSpace); } printer.print("two"); } } interface IPrinter { void print(String text); }