在正确使用匹配器时获取InvalidUseOfMatchersException

时间:2017-07-31 06:53:19

标签: unit-testing mockito matcher powermockito

一切听起来都不对,但是当我尝试模拟受保护的方法时,我得到了org.mockito.exceptions.misusing.InvalidUseOfMatchersException。我该如何解决?

$scope.upload = function (file) {
        Upload.upload({
            url: 'upload/url',
            data: {file: file, 'username': $scope.username}
        }).then(function (resp) {
            console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);
        }, function (resp) {
            console.log('Error status: ' + resp.status);
        }, function (evt) {
            var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
            console.log('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
        });
    };

1 个答案:

答案 0 :(得分:0)

我怀疑你看到了这个例外:

  

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:   参数匹配器的使用无效!   4匹配预期,2记录:

有了这个额外的背景:

  

如果匹配器与原始值组合,则可能会发生此异常:      //不正确:      someMethod(anyObject(),“raw String”);

如果是这样,那么这是因为您将匹配形式的参数(Matchers.any(Long.class)Matchers.any(Date.class))与原始值形式的参数(service,{{1 }})。

我不清楚被测方法的签名,但我认为它可能类似于

"getValidatedDto"

如果是这样,那么正确的调用将是:

System getValidatedDto(Long aLong, Date aDate);