c# - Nunit 单元测试随机数
问题描述
我正在寻找对返回随机浮点数作为 ID 的方法进行单元测试。我正在尝试使用 Red Green Refactor,但被代码的随机性难住了。下面找到我要测试的方法。我知道我在技术上应该先编写测试,但我不知道如何随机测试。
public Random ReturnDevID()
{
var rnd = new Random();
rnd.NextDouble();
return rnd;
}
解决方案
写起来有点奇怪。我个人认为你不需要它,但如果你愿意,你可以尝试这样的事情(我也改变了你的实现,因为它返回一个随机的实例,而不是一个随机的浮点数):
public double ReturnDevID()
{
var rnd = new Random();
return rnd.NextDouble();
}
public void TestRandom()
{
// Call the method 100 times and save the result in a list
var randoms = Enumerable.Range(0, 100)
.Select(i => ReturnDevID())
.ToList();
// Make sure you have no duplicates
Assert.AreEqual(randoms.Count, randoms.Distinct().Count());
}
推荐阅读
- reactjs - React - 在按钮中使用箭头
- java - 从列表中提取多个块
- jenkins - Job DSL:如果存在多个这样的节点,我如何向先前生成的 XML 添加配置块?
- docker - 构建 Docker 镜像的 RUN 指令
- reactjs - 如何在不显示默认上下文菜单的情况下关闭材质 UI 上下文菜单?
- vue.js - TypeError:使用 Vuesax 表在 VueJS 中传播不可迭代实例的尝试无效
- java - Android 强行关闭免提电话以拨打电话
- typescript - TYPESCRIPT - 如何在 TypeScript 对象的每个属性中允许更多类型?
- carriage-return - 为什么将文本附加到每行的末尾会替换第一个字符?
- angular - Angular 7 使用 ng2-upload 无法上传文件大小大 50mb