任何人都可以帮我创建这个类的junit测试用例吗?

时间:2015-10-20 13:03:33

标签: java junit

我创建了一个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;
    }

}

2 个答案:

答案 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))
}