当前位置: 首页 > 知识库问答 >
问题:

模拟聚合类

宗政颖逸
2023-03-14

我们在C类中有以下方法:

public static void m(a A, b B)
{
......

A1 a1=new a.getA1;  //Not sure about the syntax
Double d1= a.getInfo;
.....

if (d1>5.0)
  {
   b.add(d1,a1)   
  }
}

A是另一个类。在A中,我们有一个声明为类A1类型的变量(我认为这使得A成为一个聚合类)。我已经将以下对象定义为模拟对象

private mockA = mock(A.class);
private mockA1 = mock(A1.class);   // Please help with syntax
private mockB = mock(B.class)

而且

when(mockA.getInfo()).thenReturn(6.4);
when(mockA.getA1()).thenReturn(mockA1);    //Please help with syntax
when(mockA1.m2()).thenReturn("Some More Details");   // Please help with syntax  

m(mockA, mockB);

// In case > 5.0
verify(mockB,times(1)).add(6.4,mockB);

//in case < 5.0
verify(mockB,times(0)).add(anyDouble,any(B.class));

如果模拟A1对象并在when/verify中使用它的语法是正确的,请您提供帮助?

另一个问题是,如果没有必要为a1创建mock,应该使用哪种语法?例如,下面的可以吗?

 when(mockA.getA1().m2())).thenReturn("Something");

谢谢

共有1个答案

董奇思
2023-03-14

模拟A1的语法与模拟A的语法相同。您只需要确保与A1的任何交互(例如,mockA1.m2())都是模拟的,或者包含有效数据(如果A1不是模拟的话)。

如果你在模仿A1,那么你的代码是正确的:

A mockA = mock(A.class);
A1 mockA1 = mock(A1.class);

when(mockA.getInfo()).thenReturn(6.4);
when(mockA.getA1()).thenReturn(mockA1);
when(mockA1.m2()).thenReturn("Some More Details");

如果A1不是mock,那么就不需要像使用when(mockA1.m2())那样对其方法进行模拟。然后返回(…) 以上:

A mockA = mock(A.class);
A1 realA1 = new A1();

when(mockA.getInfo()).thenReturn(6.4);
when(mockA.getA1()).thenReturn(realA1);

 类似资料:
  • 在前几节基于Fashion-MNIST数据集的实验中,我们评价了机器学习模型在训练数据集和测试数据集上的表现。如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训练数据集上更准确时,它在测试数据集上却不一定更准确。这是为什么呢? 训练误差和泛化误差 在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,

  • 在本章中,我们将研究Drupal中的Aggregator Module 。 聚合器模块从其他网站获取内容,但不生成任何源。 它也被称为饲料阅读器。 它收集并显示来自其他网站和博客的文本和图像。 以下是启用聚合器模块的步骤。 Step 1 - 单击菜单栏中的Modules 。 Step 2 - 显示不同模块的列表。 启用Aggregator模块,然后单击Save Configuration ,如以下

  •   现有的高斯模型有单高斯模型(SGM)和高斯混合模型(GMM)两种。从几何上讲,单高斯分布模型在二维空间上近似于椭圆,在三维空间上近似于椭球。 在很多情况下,属于同一类别的样本点并不满足“椭圆”分布的特性,所以我们需要引入混合高斯模型来解决这种情况。 1 单高斯模型   多维变量X服从高斯分布时,它的概率密度函数PDF定义如下:   在上述定义中,x是维数为D的样本向量,mu是模型期望,sigm

  • Django数据库抽象API描述了使用Django查询来增删查改单个对象的方法。然而,你有时候会想要获取从一组对象导出的值或者是聚合一组对象。这份指南描述了通过Django查询来生成和返回聚合值的方法。 整篇指南我们都将引用以下模型。这些模型用来记录多个网上书店的库存。 from django.db import models class Author(models.Model): na

  • Elasticsearch支持模糊搜索查询:https://www.elastic.co/guide/en/elasticsearch/guide/2.x/fuzzy-match-query.html 和按术语的桶聚合:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket

  • 问题内容: 我想在Python的xlsxwriter中模拟Excel自动拟合功能。根据此网址,不直接支持它:http : //xlsxwriter.readthedocs.io/worksheet.html 但是,在工作表中的每个单元格之间循环并确定列的最大大小,然后使用worksheet.set_column(row,col,width)设置宽度应该非常简单。 使我无法撰写本文的复杂因素包括: