gpt4 book ai didi

java - 单元测试火后忘记方法

转载 作者:行者123 更新时间:2023-11-30 01:38:59 24 4
gpt4 key购买 nike

我正在 Android 上开发,但我是单元测试(JUnit 和 mockito)的新手。

我写了一个方法,你可以调用它然后忘记它(fire&forget)。正确与否对你来说(根本)无关紧要。

该方法只是调用 Google Analytics 来发送一些分析,因此在 App 上并不重要。

我将我的代码调用到 myGoogleAnalyticSingleton.googleAnalytics_sendViewProduct(myProduct)我忘记了这件事。

“googleAnalytics_sendViewProduct(MyProduct myProduct)”方法类似于:

    public void googleAnalytics_sendViewProduct(MyProduct myProduct) {
final GA_Product gaProduct = new GA_Product(myProduct.getId(),
myProduct.getName(),
myProduct.(so on));

trackerAnalytics.send(gaProduct);
}

所以问题是:我如何测试每种方法(查看产品、将产品添加到购物车、从购物车中删除产品等)发送指标并发送正确的参数?

public void test_gaViewProduct() {
assertEquals(gaProduct.getId, myTestIdonMyProductModel);
assertEquals(gaProduct.getName, myTestNameOnMyProductModel);
assertEquals .....
assertTrue(sendWasCalled());
}

我是测试新手,所以我不确定我的想法是否有问题。

谢谢。

最佳答案

模拟 Tracker 并将其注入(inject)到您的测试代码中:

Tracker mockTracker = mock(Tracker.class);
product.setTracker(mockTracker);

调用您的测试代码(查看产品、添加到购物车...)

product.addToCart();

然后简单地验证是否调用了所需的方法,例如:

verify(mockTracker).setScreenName("myscreenname");
verify(mockTracker).send(new HitBuilders.AppViewBuilder()
.setCategory("category", TRACKING_ID)
.build());

关于java - 单元测试火后忘记方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34762393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com