问题标签 [fscheck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
71 浏览

c# - FsCheck 显示异常 C#

我正在玩 FsCheck。它失败了

为什么?两个操作ArrayHelpers.SumOfElements(original)和 original.Sum() 返回相同的结果但 iy 失败。

0 投票
2 回答
339 浏览

f# - 如何使用 FsCheck 生成器生成两条相同类型的记录,其中一条记录的属性与另一条不同

我有这个 fscheck nunit 测试,它生成两条记录,然后我必须更新这些记录,以便两条记录始终具有不同的 Direction 属性值

我不想手动设置 Direction = In 或 Direction = In ,我想使用生成器来指定它。

这样的发电机会是什么样子?

我想留下这样的代码

这是我没有运气的尝试

谢谢

这是我的一些类型

0 投票
2 回答
271 浏览

f# - Expecto FsCheck在生成字符串时出现堆栈溢出异常

我正在尝试学习如何正确使用 FsCheck,并将其与 Expecto 集成。如果我使用默认的 FsCheck 配置,我可以运行属性测试,但是当我尝试使用自己的生成器时,它会导致堆栈溢出异常。

这是我的发电机

我正在尝试像这样使用它:

异常甚至在进入Gen.where函数之前就被抛出

我究竟做错了什么?谢谢

0 投票
1 回答
391 浏览

c# - 在 FsCheck 中将两个生成器组合成一个任意值

我有一个属性,我想在 的集合上进行测试Stuff,其中一个Stuff满足某个属性。我有一种方法可以生成Stuff令人满意的属性,还有一种方法可以生成不满足的属性Stuff

今天,我正在做这样的事情(是的,我在 C# 中使用 FsCheck):

但这对排序进行了硬编码,即Stuff集合中满足属性的排序;我也想仲裁。

一种方法是嵌套Prop.ForAll调用;一个生成确定排序的东西的外部生成器,以及一个内部生成器,它是我上面的那个,但将控制排序的参数传递给集合构建器:

但这感觉很笨拙和令人费解。是否有更简单和/或更惯用的方法来实现相同的目标,即测试两个任意输出的笛卡尔积?

0 投票
1 回答
39 浏览

json - Json 提供的类型 gens 不适用于“with”

这是一个片段,它演示了我将要讨论的内容:

我正在尝试制作一个具有一些不断生成的字段的生成。我可以将集合实例的名称分配给 foo,但由于某种原因,我无法构造另一个稍微修改过的 stuct 版本。它告诉我 item 没有名为 Name 的属性,当它明显位于它之前的行时,它确实存在。出于某种原因,我可以不使用这些库的“with”语法吗?

0 投票
1 回答
146 浏览

c# - 将 fscheck 中的属性与过滤的项目一起使用

我刚开始使用 FsCheck 并想更深入地挖掘,我有以下测试用例:

现在,我只想要httpStatusCode哪些是失败的,我如何使用 FsCheck 来实现呢?我有以下代码:

但是不知道如何将其挂钩到Property我的测试用例的属性中。对于如此微不足道的事情,在线示例相当复杂。任何帮助或指导将不胜感激。

有这样的东西会很好,但对于自定义对象和自定义逻辑。

干杯。

0 投票
2 回答
349 浏览

f# - 自定义 FsCheck 输出

我正在 VisualStudio 中使用 FsCheck 和 NUnit 进行测试。

当前的问题是:我设法生成随机图(用于测试某些图功能),但是当测试失败时,FsCheck 会吐出整个图并且它不使用 ToString 因此它实际上会转储原始记录列表,并且您看不到任何内容那里。

此外,我不仅需要用于检查的输入图,还需要我在运行属性时创建的一些其他数据。

那么如何更改 FsCheck 的输出行为以便

  • 实际上在输入图上调用我的 ToString 方法
  • 输出更多信息

当测试失败?

编辑:这是我当前的测试设置。

0 投票
1 回答
308 浏览

testing - 强制 FsCheck 生成 NonEmptyString 以区分字符串类型的联合字段

我正在尝试使用 FsCheck 实现以下行为:我想创建一个生成器,它将生成一个MyUnion类型的实例,每个字符串字段都是非空/空的。

我的“真实”类型比 大/深得多MyUnion,并且 FsCheck 能够毫无问题地生成实例,但联合案例的字符串字段有时为空。(例如它可能会生成B (Y (123, ""))

也许有一些明显的方法可以结合 FsCheckNonEmptyString及其对生成我所缺少的任意联合类型的支持?

非常感谢任何正确方向的提示/指针。

谢谢!

0 投票
1 回答
40 浏览

xunit.net - FSCheck 是否适合测试类型构造?

背景:

我有大量满足以下规则的命令:

  1. 没有设置器(不可变)
  2. 一个构造函数
  3. 参数名称与正在设置的属性的名称匹配(大小写除外)

我想编写一个测试器来测试以下内容

  1. 鉴于提供了所有参数,我得到了该类的一个实例,并且所有属性都设置为传递的值。
  2. 鉴于基于类型构造函数的任何一个所需参数为空、空等,都会引发参数异常。

现在,我可以通过反射来编写它,手动滚动它,没问题,但我想知道我是否可以利用 FsCheck 生成器来生成参数。

这是我可以通过 FSCheck 实现的吗?

0 投票
0 回答
177 浏览

testing - 为什么先决条件在此 FsCheck 示例中不起作用?

我正在尝试使用FsCheck图书馆。我可以做一些测试,但前提条件似乎不起作用。下面的代码提供了一个示例:

使用空列表作为参数调用该函数会checkSortEven产生异常,因为List.rev同样如此。因此,在上面的代码中,我尝试使用前置条件,使用==>运算符来防止 FsCheck 尝试空列表。但是,无论是测试的第一个列表为空还是收缩列表为空checkSortEven,都称为产生异常:

为什么在我的基于属性的测试中忽略了我的先决条件?但这似乎是另一种情况(嵌套函数)。

我也尝试过Check.QuickThrowOnFailure,而不是Check.Quick基本相同的结果。

关于为什么先决条件在此示例中不起作用的任何想法?