java - 使用特定字符串调用的测试方法

标签 java unit-testing junit mockito

我正在尝试寻找问题的答案,但找不到有效的方法。我有一个类可以做到这一点

public class LambdaLoggerWrapper {

    public LambdaLoggerWrapper(LambdaLogger lambdaLogger){
        this.lambdaLogger = lambdaLogger;
    }

    public void logInfo(String caller, String message){
        lambdaLogger.log(message);
    }
}

我的测试是

@RunWith(MockitoJUnitRunner.class)
public class LambdaLoggerWrapperTest{
    @Mock LambdaLogger mockLambdaLogger;

    @Test
    public void testLog(){
         LambdaLoggerWrapper llw = new LambdaLoggerWrapper(mockLambdaLogger);
         //how to test that calling llw.logInfo actually calls lambdaLogger.log with appropriate string?
    }
}

如何测试调用 llw.logInfo 实际上是否使用适当的字符串调用 lambdaLogger.log?

最佳答案

在被测实例上调用 logInfo() 方法:

String message = "my message";
llw.logInfo("caller", message);

并使用 Mockito#verify() 方法断言模拟是通过预期方法以及您传递给测试方法的参数调用的:

Mockito.verify(lambdaLogger).log(message);

关于java - 使用特定字符串调用的测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072418/

相关文章:

java - 多线程单例

java - 如何结合 PowerMock 和 Robolectric

python - 在python 2的unittest模块中模拟raw_input()

java - 如何为具有重试逻辑的方法编写junit测试用例

java - 尝试调用 showArrayList 方法

java - 获取 linkedhashmap 的第一项

java - RESTful 服务器中的@Path 正则表达式

javascript - 无法在 mocha 测试的上下文中调用 sinon spy ,方法是使用 promises 调用方法

java - 断言检查字符串只包含数值

Java - 如何测试抽象类的非抽象方法?