我创建了一个Factory模式程序,它为MP分配一个随机策略。随机数生成器生成1-3之间的数字,该程序使用随机数从Policy类调用适当的策略。 有谁可以帮我为这堂课创建一个Junit测试用例?提前谢谢。
public class PolicyFactory {
public Policy createPolicy(int num) {
Policy policy = null;
if(num==1) {
policy = new Policy1();
} else if(num==2) {
policy = new Policy2();
} else if(num==3) {
policy = new Policy3();
}
return policy;
}
}
答案 0 :(得分:1)
在您的情况下,随机数在方法外生成并传递给它。这使得单元测试变得非常简单:只测试所有情况:
assertEquals("Policy 1 created", Policy1.class, createPolicy(1).getClass());
等等。
更复杂的是在方法本身内部生成随机数。在这种情况下,您需要模拟生成具有特定值的随机数来测试所有情况。有很好的工具,比如Mockito和Easymock就可以做到这一点。
答案 1 :(得分:0)
我相信你正在寻找类似的东西:
@Test
public void testPf() {
Assert.assertTrue(policyFactoryInstance.createPolicy(1) instance of Policy1)
Assert.assertTrue(policyFactoryInstance.createPolicy(2) instance of Policy2)
Assert.assertTrue(policyFactoryInstance.createPolicy(3) instance of Policy3)
Assert.assertNull(policyFactoryInstance.createPolicy(0))
}