1

是否可以Jasmine .spyOn()仅在某个参数为某个值的情况下使用 , 来模拟方法?基本上,假设我有一个GetUser方法,我想模​​拟它,如果它通过username = 'test',它将发送一个测试用户,否则为 null。一些测试假代码将是:

spyOn(userService, "getUser('test')").and.returnValue(testUser);

这相当于 C# / Moq 为:

mockUserService.Setup(x => x.getUser("test")).Returns(testuser);

我知道这可以通过使用自定义编码来完成and.callFake,但这似乎很麻烦。实际有效的测试代码是:

spyOn(userService, "getUser").and.callFake(function (username)
{
    if (username == "test")
        return testuser;
    return null
});
4

0 回答 0