package org.test4j.testng.jmockit; import mockit.Mocked; import org.test4j.hamcrest.matcher.string.StringMode; import org.test4j.module.spring.annotations.AutoBeanInject; import org.test4j.testng.Test4J; import org.testng.annotations.Test; @SuppressWarnings("unused") @Test(groups = { "test4j", "mock" }) @AutoBeanInject public class JMockitTest_NewDelegate extends Test4J { @Mocked IPrinter printer; /** * 验证jMockit的断言异常不会被覆盖 */ 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); }