我可以为此程序编写什么断言测试用例?

时间:2019-10-14 02:36:33

标签: java spring testing sonarqube

我为Java程序编写了1个断言测试用例。我需要为我的程序再编写一个测试用例,以通过Sonarqube测试。我不确定我可以编写其他哪些断言测试用例来通过此声纳测试。

这是我的DefaultAllFundsPerformanceTableConsumer.java

代码
package com.trp.gis.gdx.services.product.processor.table.allfunds.localized;

import com.trp.gis.gdx.services.product.common.localization.LocalizedProductMessage;
import com.trp.gis.gdx.services.product.common.model.table.PerformanceTableView;
import java.util.function.Consumer;

@Component("defaultAllFundsPerformanceTableConsumer")
public class DefaultAllFundsPerformanceTableConsumer implements Consumer<LocalizedProductMessage> {
    private static final Logger LOG = LoggerFactory.getLogger(DefaultAllFundsPerformanceTableConsumer.class);

    private final OptimisticLockFlowManager<PerformanceTableView> flowManager;
    private final SiteMapProvider siteMapProvider;

    public DefaultAllFundsPerformanceTableConsumer(
            final OptimisticLockFlowManager<PerformanceTableView> flowManager,
            final SiteMapProvider siteMapProvider) {
        this.flowManager = flowManager;
        this.siteMapProvider = siteMapProvider;
    }


    @Override
    public void accept(LocalizedProductMessage localizedProductMessage) {
        LOG.info("ignore "+localizedProductMessage.getKey());

    }
}

这是我为此类编写的测试用例

package com.trp.gis.gdx.services.product.processor.table.allfunds.localized;

import com.trp.gis.gdx.services.product.common.enums.AssetClass;
import com.trp.gis.gdx.services.product.common.enums.Audience;
import com.trp.gis.gdx.services.product.common.enums.Country;
import com.trp.gis.gdx.services.product.common.enums.Language;
import com.trp.gis.gdx.services.product.common.enums.Vehicle;
import com.trp.gis.gdx.services.product.common.localization.LocalizedProductMessage;
import com.trp.gis.gdx.services.product.common.model.table.PerformanceTableView;
import com.trp.gis.gdx.services.product.processor.common.service.SiteMapProvider;
import com.trp.gis.gdx.services.product.processor.common.storage.OptimisticLockFlowManager;
import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.assertTrue;

public class DefaultAllFundsPerformanceTableConsumerTest
{
    LocalizedProductMessage                 message;
    DefaultAllFundsPerformanceTableConsumer consumer;

    private OptimisticLockFlowManager<PerformanceTableView> flowManager;
    private SiteMapProvider siteMapProvider;

    @Before
    public void setUp()
    {
        message = LocalizedProductMessage.builder()
                .ingestedData("Test")
                .key("1")
                .audience(Audience.INSTITUTIONAL)
                .vehicleType(Vehicle.US_MUTUAL_FUND)
                .country(Country.UNITED_STATES)
                .language(Language.ENGLISH)
                .assetClass(AssetClass.EQUITY)
                .build();
        consumer =
                new DefaultAllFundsPerformanceTableConsumer(flowManager,
                        siteMapProvider);
    }

    @Test
    public void accept()
    {
        consumer.accept(message);
        assertTrue("Pass", true);
    }
}

我需要一些指导来编写另一个断言测试用例以通过声纳法。

1 个答案:

答案 0 :(得分:0)

我认为您的单元测试已经完成。您正在测试的使用者类旨在除生成“信息”日志消息以表示其无所作为外,什么也不做。

由于“不做任何事情”都不会失败,并且测试某项没有“不做任何事情”是不切实际的,因此,您已经测试了所有您可以测试的东西。

一个学徒可能会争辩说您需要测试是否正在记录“信息”日志消息。但是,信息日志记录通常不被认为是您需要测试的东西。