whenNew()与PoweMockito

时间:2017-12-14 12:50:28

标签: junit4 powermockito

我用PowerMockito模拟了File类构造函数。

                $scope.myImage='';
            $scope.myCroppedImage='';

            var handleFileSelect=function(evt) {
                var file=evt.currentTarget.files[0];
                var reader = new FileReader();
                reader.onload = function (evt) {
                    $scope.$apply(function($scope){
                        $scope.myImage=evt.target.result;
                    });
                };
                reader.readAsDataURL(file);
            };
            angular.element(document.querySelector('#fileInput')).on('change',handleFileSelect);

但是当我的sut类创建File(“withSomeOtherPath”)时,返回null。

我希望应该返回'mockFile',当使用“Filepath”参数调用时,应该调用其他参数实际构造函数。

不是吗?

1 个答案:

答案 0 :(得分:0)

"我希望' mockFile'当使用" Filepath"进行调用时,应该返回参数,与其他参数的实际构造函数应该被调用。" ----> Spy没有Mock这是真的 使用Spy的默认行为是调用实际方法,除非它是存根的。

与Mock一样,默认行为是在没有存根时执行任何操作。因此你得到null

试试这个

PowerMockito.whenNew(File.class).withArguments("Filepath").thenReturn(mockFile).thenCallRealMethos();