Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将属性设置为模拟对象jmock_Java_Unit Testing_Junit_Jmock - Fatal编程技术网

Java 将属性设置为模拟对象jmock

Java 将属性设置为模拟对象jmock,java,unit-testing,junit,jmock,Java,Unit Testing,Junit,Jmock,是否可以将值分配给模拟对象。例: myMockObject = context.mock(MyObject.class); myMockObject.setId("someId"); 我正在测试的方法已经到了最后,但是在最后有一个验证该对象的方法,所以没有id的对象被认为是无效的。还有什么我能做的吗 我可以指定ok吗?我希望出现此异常,但还是通过了测试 我找到了此链接,但找不到解决方案: 我希望记录器抛出消息字符串的验证异常,以前有人有过这种经验吗 我试过这个: context.check

是否可以将值分配给模拟对象。例:

myMockObject = context.mock(MyObject.class);

myMockObject.setId("someId");
我正在测试的方法已经到了最后,但是在最后有一个验证该对象的方法,所以没有id的对象被认为是无效的。还有什么我能做的吗

我可以指定ok吗?我希望出现此异常,但还是通过了测试

我找到了此链接,但找不到解决方案:

我希望记录器抛出消息字符串的验证异常,以前有人有过这种经验吗

我试过这个:

context.checking(new Expectations() {
            {

allowing(logger).error(with(exceptionMessage));

    }
        });

注意exceptionMessage消息由验证方法抛出,该方法在我正在测试的方法末尾验证对象。

您需要添加一个期望值,该期望值会导致模拟方法返回您期望的值:

allowing (myMockObject).getId(); will(returnValue("someId"));

这将导致getId返回您期望的值,并且由于它使用的是允许调用计数,因此如果不调用它,它不会导致测试失败。

这就是我想要的答案:


我将在哪里编写此代码?在
context.checking(newexpectations(){
或?我遇到编译错误,找不到stubs
方法stubs()未为类型myMockObject定义effort@c0mrade您使用的是哪个版本的jMock?@c0mrade经过编辑以反映jMock的正确版本,请参见上文。此验证方法不会调用问题所在的getter方法,但它会将验证错误发送给记录器,因此我认为记录器可能会发送某些消息,但我猜版本不支持(eq(errorString)),正如我在编辑中发布的链接所示