使用jasmine / spyOn仅在传递特定方法时模拟方法

时间:2015-05-27 09:26:50

标签: javascript unit-testing mocking jasmine spyon

是否可以使用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
});

0 个答案:

没有答案