加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在单元测试中验证对依赖的调用?

发布时间:2020-12-15 01:06:36 所属栏目:Java 来源:网络整理
导读:对于以下类,我想编写一个单元测试: public class SomeClass { private Dependency dependency; public SomeClass(Dependency dep){ this.dependency = dep; } private String processString(String s){ /* edit the string and return */ } public void doS

对于以下类,我想编写一个单元测试:

public class SomeClass {

    private Dependency dependency;

    public SomeClass(Dependency dep){
        this.dependency = dep;
    }

    private String processString(String s){
        /*
        edit the string and return
         */
    }

    public void doSomething(String arg){

        String processed = processString(arg);

        dep.doSomethingElse(processed);
    }
}

首先,我将存储SomeClass调用Dependency的所有方法,以便单独测试我的类.
但我无法找到答案的问题是:

我应该检查SomeClass如何调用依赖关系的方法,例如什么参数传递等?
当然这是一个非常简单的例子,但我想知道这是否应该是一般单元测试的一部分.

编辑:在我的情况下依赖将是我不控制的第三方api库.所以我认为将参数传递给这些函数很重要但是我不确定这应该是单元测试的一部分.

最佳答案
我会说如果调用依赖项,那么你应该至少有一个测试用例来检查它是否被调用.如果你不想覆盖这种情况,这意味着(对我来说)你无论如何都不需要打电话.当你有任何条件语句如if / else / switch时,这非常重要.你能想象你错误地删除了这行代码

 dep.doSomethingElse(processed);

在不检查依赖项是否被调用的情况下,您甚至不会注意到已将其删除.

测试看起来像:

import static org.fest.assertions.Assertions.assertThat;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;

@RunWith(MockitoJUnitRunner.class)
public class SomeClassTest {

  @Mock
  private Dependency dependency;

  @InjectMocks
  private SomeClass someClass;

  @Captor
  private ArgumentCaptor

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读