gpt4 book ai didi

Easymock isA 与 anyObject

转载 作者:行者123 更新时间:2023-12-02 00:41:00 24 4
gpt4 key购买 nike

有什么区别

EasyMock.isA(String.class) 

EasyMock.anyObject(String.class)

(或提供的任何其他类)

在什么情况下您会使用其中一种而不是另一种?

最佳答案

区别在于检查 Null 值。当 null 时,isA 返回 false,但对于 null,anyObject 也会返回 true。

import static org.easymock.EasyMock.*;
import org.easymock.EasyMock;
import org.testng.annotations.Test;


public class Tests {


private IInterface createMock(boolean useIsA) {
IInterface testInstance = createStrictMock(IInterface.class);
testInstance.testMethod(
useIsA ? isA(String.class) : anyObject(String.class)
);
expectLastCall();
replay(testInstance);
return testInstance;
}
private void runTest(boolean isACall, boolean isNull) throws Exception {
IInterface testInstance = createMock(isACall);
testInstance.testMethod(isNull ? null : "");
verify(testInstance);
}
@Test
public void testIsAWithString() throws Exception {
runTest(true, false);
}
@Test
public void testIsAWithNull() throws Exception {
runTest(true, true);
}
@Test
public void testAnyObjectWithString() throws Exception {
runTest(false, true);
}
@Test
public void testAnyObjectWithNull() throws Exception {
runTest(false, false);
}

interface IInterface {
void testMethod(String parameter);
}
}

在示例中,testIsAWithNull 应该失败。

关于Easymock isA 与 anyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515157/

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