package org.test4j.testng.jmockit; import mockit.Mocked; import org.test4j.fortest.formock.SomeInterface; import org.test4j.fortest.formock.SpringBeanService; import org.test4j.module.spring.annotations.SpringBeanByName; import org.test4j.module.spring.annotations.SpringBeanFrom; import org.test4j.module.spring.annotations.SpringContext; import org.test4j.testng.Test4J; import org.testng.annotations.Test; @SpringContext({ "org/test4j/module/spring/testedbeans/xml/mockbeans-withdependency.xml" }) @Test(groups = { "test4j", "mock-demo" }) public class MockBeanTest_MissingDependency extends Test4J { @SpringBeanByName private SpringBeanService springBeanService1; @SpringBeanFrom @Mocked protected SomeInterface dependency2; public void testDependency_MockBean() { want.object(springBeanService1.getDependency1()).notNull(); want.object(springBeanService1.getDependency2()).notNull(); } @SpringBeanFrom @Mocked private SpringBeanService springBeanService2; @Test public void testDependency_UnMockBean() { new Expectations() { { when(springBeanService2.getDependency1()).thenReturn(dependency2); when(springBeanService2.getDependency2()).thenReturn(dependency2); } }; want.object(springBeanService2.getDependency1()).notNull(); want.object(springBeanService2.getDependency2()).notNull(); } /** * 重复运行一次,看看Mock字段是否会发生测试方法间干扰 */ @Test(dependsOnMethods = "testDependency_UnMockBean") public void testDependency_UnMockBean2() { new Expectations() { { when(springBeanService2.getDependency1()).thenReturn(dependency2); when(springBeanService2.getDependency2()).thenReturn(dependency2); } }; want.object(springBeanService2.getDependency1()).notNull(); want.object(springBeanService2.getDependency2()).notNull(); } }