已经发布了几个关于依赖注入的具体问题的问题,例如何时使用它以及它有哪些框架.然而,
什么是依赖注入以及何时/为什么应该或不应该使用它?
language-agnostic design-patterns dependency-injection terminology
具体来说,我有一个方法从列表中选择n个项目,其中%的符合一个标准,b%符合第二个,依此类推.一个简单的例子是选择5个项目,其中50%具有值为'true'的给定属性,50%'false'; 该方法有50%的时间返回2真/ 3假,另外50%,3真/ 2假.
从统计学上讲,这意味着超过100次运行,我应该得到大约250真/ 250假,但由于随机性,240/260是完全可能的.
对此进行单元测试的最佳方法是什么?我假设即使技术上300/200是可能的,如果发生这种情况,它应该可能无法通过测试.对于这样的案例,是否存在普遍接受的容忍度?如果是这样,您如何确定这是什么?
编辑:在我正在处理的代码中,我没有使用伪随机数生成器或强制它随时间平衡的机制,因为挑选出的列表是在不同的生成机器.我需要能够证明,随着时间的推移,符合每个标准的平均项目数将趋向于所需的百分比.
我有返回 0 到 6 之间的三个随机元素数组的函数。它确保所有元素不能具有相同的值(您可以有两个具有相同值的元素,但不能是三个)。下面是一个示例代码。
public function getRandom() {
$array = array(0, 0, 0);
do {
$array[0] = rand(0, 6);
$array[1] = rand(0, 6);
$array[2] = rand(0, 6);
} while(($array[0] == $array[1]) && ($array[0] == $array[2]));
return $array;
}
Run Code Online (Sandbox Code Playgroud)
我对单元测试有点陌生,唯一能想到的就是测试这个
我想知道是否有任何方法或我的哪种方法更适合这种情况。