我为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);
}
}
我需要一些指导来编写另一个断言测试用例以通过声纳法。
答案 0 :(得分:0)
我认为您的单元测试已经完成。您正在测试的使用者类旨在除生成“信息”日志消息以表示其无所作为外,什么也不做。
由于“不做任何事情”都不会失败,并且测试某项没有“不做任何事情”是不切实际的,因此,您已经测试了所有您可以测试的东西。
一个学徒可能会争辩说您需要测试是否正在记录“信息”日志消息。但是,信息日志记录通常不被认为是您需要测试的东西。