Maven因varargs参数

时间:2016-04-10 01:11:41

标签: java maven junit4 variadic-functions

我试图为我的应用程序创建单元测试但不幸的是我遇到了一个奇怪的问题。

我有一个方法有两个参数,最后一个是varargs类:

public JsonApi convertStringToJsonApi(String json, Class<?>... classes)

我的测试非常简单:

jsonApiString = "{ 'data': [ { 'type': 'TEST', 'id': '1', 'attributes': { 'attr1': 'Attribute', 'attr2': 200, 'attr3': { 'attr': { 'Model': 'XPTO', 'License': '85599' } } }, 'relationships': { 'name': 'Miguel', 'age': '30' } } ] }";

// jsonApiObjectResult = jsonMaker.convertStringToJsonApi(jsonApiString. EntityTestAttr1.class, EntityTestRels.class);
jsonApiObjectResult = jsonMaker.convertStringToJsonApi(jsonApiString, new Class<?>[] { EntityTestAttr1.class, EntityTestRels.class });

Assert.assertNotNull(jsonApiObjectResult);
Assert.assertNotNull(jsonApiObjectResult.getData().get(0));
Assert.assertEquals("1", jsonApiObjectResult.getData().get(0).getId());
Assert.assertEquals("TEST", jsonApiObjectResult.getData().get(0).getType());
Assert.assertEquals("Attribute", ((EntityTestAttr1) jsonApiObjectResult.getData().get(0).getAttr()).getAttr1());
Assert.assertEquals(new BigDecimal(200), ((EntityTestAttr1) jsonApiObjectResult.getData().get(0).getAttr()).getAttr2());
Assert.assertEquals("XPTO", ((EntityTestAttr1) jsonApiObjectResult.getData().get(0).getAttr()).getAttr3().getAttr().get("Model"));
Assert.assertEquals("85599", ((EntityTestAttr1) jsonApiObjectResult.getData().get(0).getAttr()).getAttr3().getAttr().get("License"));
Assert.assertEquals("Miguel", ((EntityTestRels) jsonApiObjectResult.getData().get(0).getRels()).getName());
Assert.assertEquals("30", ((EntityTestRels) jsonApiObjectResult.getData().get(0).getRels()).getAge());

当我用eclipse运行单元测试时,所有工作都完美无缺,测试成功;但是,使用maven我得到一个异常&#34; java.lang.NullPointerException&#34;。

Maven堆栈:

Tests run: 12, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.075 sec <<< FAILURE! - in org.test.TestAux
convertAllResourcesStringToJsonApiTest(org.test.Maker)  Time elapsed: 0.063 sec  <<< ERROR!
java.lang.NullPointerException
    at org.test.Maker.convertAllResourcesStringToJsonApiTest(TestAux.java:208)

我相信它是因为当我在第二个参数(varargs)中只使用一个类时的varargs然后工作正常并且maven获得成功。

为什么呢?我不明白! :(

0 个答案:

没有答案