gpt4 book ai didi

javascript - 数组随机返回的 Jasmine 测试

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:50 25 4
gpt4 key购买 nike

我有这个随机返回颜色的函数:

function setRandomColor() {
var randomColor = ["red", "blue", "green", "#9CBA7F", "yellow", "#BF5FFF"];
return randomColor[Math.floor(Math.random() * randomColor.length)];
}

我是 Jasmine 的新手,不知道如何进行测试。有任何想法吗?我知道您可以使用 .toEqual 但每次返回值都会不同?

最佳答案

更大的问题。你想测试什么?换句话说,您想断言什么?下面是一些示例:

  1. 该函数返回一个字符串。
  2. 该函数仅返回列表中的一个字符串。
  3. 该函数返回一个特定的字符串(确定性的)。

如果您只关心其余代码可以假设该函数将返回一个字符串,但实际值并不重要,因为它是随机的,那么第一个是最好的。如果您正在测试该函数正确计算了一个值,则最后一个是最好的。

在后者的情况下,您将不得不模拟 Math.random() 以始终返回相同的结果。有很多库可以处理这个问题。

在前一种情况下很简单:

describe('#setRandomColor', function() {
it('returns a string', function() {
expect( setRandomColor() ).toEqual(jasmine.any(String));
});
});

为了完整起见,选项 2 更加复杂,需要您引用原始选项数组来测试或使用 @alex 提到的依赖注入(inject)。

关于javascript - 数组随机返回的 Jasmine 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23331019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com