我正在为我的一个应用程序编写单元测试,作为一个很好的实践,我试图使我的类中的所有方法尽可能私有,所以我最终可能会使用大部分私有方法的类,很少使用公共方法,有时还会调用一些静态方法(我的其他类或一些文本,等等)
我想知道如何测试我试图只依赖Mockito和JUnit的所有类,因为Robolectric和Powermockito似乎扩展了单元测试中应该做什么的边界。我应该忽略所有私有和静态方法,以及偶然调用一些静态或私有方法的公共方法吗?或者怎么做?
注意:这只是一般信息,因为您的问题没有提供可供评论的代码。
由于私有方法通常不能在类之外访问(反射完全是另一回事),并且通常在那里为公共和受保护的方法提供功能,因此单元测试只需要测试公共和受保护的方法。如果仔细选择测试数据,您应该能够执行大部分/全部代码。
您可以使用Mockito来模拟测试中的类所需的任何依赖项。您可以使用expectes(mockito.when(...).thenreturn(...)
或mockito.verify(mockedClass).method(...)
)来模拟外部功能或检查测试中的类是否按预期进行传出调用。
问题内容: 阅读并学习单元测试,尝试理解下面的文章,该文章解释了静态函数调用的困难。 我不清楚这个问题。我一直认为静态函数是在类中舍入实用函数的一种好方法。例如,我经常使用静态函数调用进行初始化,即: //阅读这篇文章后,我现在的目标是… 但是,我为此课程编写的几十个测试是相同的。我什么都没改变,他们仍然都过去了。难道我做错了什么? 该帖子的作者指出: 静态方法的基本问题是它们是过程代码。 我不知
我需要junit测试一段代码,但它从不同类调用的GsonConverter是静态方法,我无法更改。我不知道如何进行,因为我不能嘲笑它,因为它是静态的。 下面是带有静态方法的类
我有一个类(我们称之为XClass),它有一个我正在测试的方法(我们称之为xMethod)。它还包含一个: 在我的单元测试设置方法中,我有: 在测试方法中,我创建了几个(在我的例子中是8个)线程。它们的run方法调用XClass.XMethod。此方法更改静态映射变量。方法xMethod应该调用Map.ContainsKey()Map.Get()和Map.Put()8次。它不执行任何删除操作。这个
我有一个类,它有一个公共方法,它调用另一个私有方法。 通过调用公共方法 并将 设置为 来进行测试。 将更改为package-private并在测试中直接调用它。 然而,我不确定哪种方法更好。
我在网上读了一些讨论。他们说,我们不应该对私有方法进行单元测试或检查私有状态,因为这是实现细节,是糟糕设计的标志。但就我而言,我真的不知道如何做得更好。 下面是一个示例代码(我的实际代码是使用factory编写的,但我尝试使用纯js创建一个相同的案例,这样每个人都更容易理解,因为相同的原因是闭包): 在我真正的应用程序中,我可以注入和模拟本地存储,但这是一个问题。我的问题是如何测试方法是否设置了其
我是单元测试的新手,最近尝试了JUnit测试和Mockito。 我很困惑我该如何测试公共功能。