使用createSpyObj创建间谍时,callThrough不起作用

萨拉比阿尼

and.callThrough当使用创建间谍对象时,似乎实际上并没有运行原始的实现createSpyObj例如,假设我有一个具有以下帮助程序方法的Angular服务:

user.service.ts

class UserService {

    getFullName(first: string, last: string): string {
         return first + ' ' + last;
    }
}

在规格中,我使用createSpyObj以下方法创建了一个间谍

user.service.specs.ts

const userServiceSpy = jasmine.createSpyObj<UserService>('UserService', ['getFullName']);

// ....

beforeEach(() => {

    userServiceSpy.getFullName.and.callThought();
    const test = userService.getFullName('test1', 'test2');
    console.log(test);   // < = = = = = ISSUE: test is undefined! WHY ???
});

如何使getFullName函数像在主类中实现的那样运行?(我不想存根或调用伪函数,但是在调用时以某种方式使用main函数实现getFullName)。

我试图用原始的覆盖函数原型:

userServiceSpy.getFullName.prototype = UserService.prototype.getFullName;

第二次尝试:

userServiceSpy.getFullName = UserService.prototyp.getFullName; // This is a compile error. 
萨拉比阿尼

我们需要使用callFake和使用原型中的函数实现,如下所示:

userServiceSpy.getFullName.and.callFake(UserService.prototype.getFullName);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用ViewModel时导航不起作用

使用?/ attr时actionMenuTextColor不起作用

使用动词时workingdirectory不起作用

tmux命令在创建窗口时不起作用?

通过ComponentFactoryResolver创建组件时,更改检测不起作用

Moment JS默认时区在创建日期时不起作用

使用路由时指令不起作用

Django-使用.0进行查询。在使用.first()时不起作用。创建重复的查询

使用glOrtho()时gluLookAt()不起作用?

当使用`fork`创建的多个C线程的回调函数时,Rust Mutex不起作用

使用Find时SearchDirection不起作用

当创建为对象时,Pygame蒙版不起作用?

在方法中创建struct时,引用返回不起作用

使用遮罩时“ WithAnimation”不起作用?

使用Java动态创建JSF commandButton时不起作用

使用<use>动态创建时,SVG <animate>不起作用

在Codeigniter中创建API时,POST方法不起作用

CallThrough注入间谍

使用Bootstrap时不起作用

使用从文件创建的列表时,函数将不起作用

为什么此语法在使用 nashorn 创建 Java String 数组时不起作用

动态创建 ul 类时,Bootstrap 折叠不起作用

创建范围时 xlCellTypeVisible 不起作用

使用 GoogleFonts 时 FontWeight 不起作用

使用 $(...) 创建 Unix 别名不起作用

在尝试使用输入创建 txt 文件时,它不起作用

使用 Kubectl 命令创建 POD 时,端口映射在 AKS 中不起作用

使用 [[ngModel]] 时 patchValue 不起作用

使用 viewBinding 时 SetTheme 不起作用