例如, Reductio (用于Java / Scala)和QuickCheck (用于Haskell)。 我正在考虑的那种框架将为内置数据类型提供“生成器”,并允许程序员定义新的生成器。 然后,程序员将定义一个测试方法,该方法断言某些属性,将适当类型的变量作为参数。 然后,框架为参数生成一堆随机数据,并运行该方法的数百个测试。

例如,如果我实现了一个Vector类,并且它有一个add()方法,我可能想检查我的添加是否通勤。 所以我会写一些像(在伪代码中):

boolean testAddCommutes(Vector v1, Vector v2) {
    return v1.add(v2).equals(v2.add(v1));
}

我可以在两个特定的向量上运行testAddCommutes()来查看该加法是否通勤。 但是我没有写一些testAddCommutes的调用,而是编写了一个过程,而不是生成任意的Vector。 鉴于此,框架可以在数百个不同的输入上运行testAddCommutes。

这对任何人都响了吗?

===============>>#1 票数:4

有FsCheck,一个从QuickCheck到F#的端口,因此是C#,尽管大多数文档似乎都是针对f#。 我自己一直在探索这些想法。 请参阅: http//kilfour.wordpress.com/2009/08/02/testing-tool-tour-quicknet-preview/

===============>>#2 票数:1

详细说明我之前的评论,测试伪代码示例的QN代码如下所示:

new TestRun(1, 1000)
    .AddTransition(new MetaTransition<Input<Vector, Vector>, Vector>
    {
        Name = "Vector Add ",
        Generator = DoubleVectorGenerator,
        Execute = input => input.paramOne.Add(input.paramTwo)
    }
    .RegisterProperty(
        (input, output) =>
            new QnProperty(
                "Is Communative",
                () => QnAssert.IsTrue(output == input.paramTwo.Add(input.paramOne) )
            )
        )
    )
    .Verify()
    .RethrowLastFailureifAny()
    .ReportPropertiesTested(new ConsoleReporter());

其中DoubleVectorGenerator是一个用户定义的类,提供Input <Vector,Vector>类型的值。

===============>>#3 票数:1

我也许不能正确理解,但PEX可能对你有用。

===============>>#4 票数:-1

我可能没有正确理解你,但检查一下......

http://www.ayende.com/projects/rhino-mocks.aspx

  ask by EfForEffort translate from so

未解决问题?本站智能推荐:

1回复

如何在.NET中测试可执行文件

每当我阅读用.NET(C#)编写测试时,都只能测试DLL。 但是我的应用程序没有任何DLL,我也想测试一些控制器和行为。 没有创建DLL项目,怎么可能? 可能吗? 欢迎提示。
1回复

在.Net中测试复杂的T-SQL脚本?

我正在使用T-SQL开发复杂的数据转换脚本。 该脚本必须在新数据库方案和旧方案之间转换数据。 为了测试脚本,我执行以下操作: 创建或重置两个数据库。 在我要测试的“新”数据库中进行一些更改(添加新条目,删除一个条目等) 运行脚本以同步两个实例。 在“旧”
2回复

.NET有一个很好的http级别测试框架吗?

是否有适用于.NET的良好HTTP级别测试框架? 我们希望用.NET开发人员更友好的东西替换一些Web注入脚本。 理想情况下,我们希望能够像其他单元和Web驱动程序测试一样将它们插入NUnit。 我们已经看过用于java的HttpUnit。 像.NET这样的东西是理想的。 我们希望
1回复

.NET性能测试影响(NOT WEB)

.NET中是否有用于持续性能测试的工具/技术? 理想情况下,我想找到一个可以与Performance一样的工具,例如Test Impact可以做到核心:记住以前的最佳结果,在我更改受影响的代码时发出通知,然后将新的测试运行与上一个进行比较。 我知道即使在相同的代码上运行,执行时间也可能会有所
3回复

用于.NET的自动单元测试Gen Tools

希望获得自动化测试工具(投票应该把好的工具带到顶部) 理想的工具将: 消除了为方法提供一组值的需要。 采用交互式探索性测试等技术,检查代码以确定执行所有代码路径所需的值。 即,方法的单元测试由代码的复杂性决定 例如,如果方法检查整数参数是123,则至少生成2个单
1回复

测试.NET Windows窗体(VB)应用程序

我们有一个.NET应用程序(VB / VS2010),该项目已经运行了大约2年。 没有任何基于测试方法的开发方法,例如没有单元测试等。由于各种时间和金钱限制,我们无法在后见之明做到这一点。 到目前为止的测试是手动完成的,正如您所期望的那样,它会花费一些时间。 该应用程序本身基于.N
7回复

基于.Net / WPF的应用程序的测试套件

a我对自动化现有产品系列的某些应用/系统级测试感兴趣。 我们的产品系列包括几个不同的应用程序,用.Net 3.5编写,并使用WPF作为表示层。 最后,我有兴趣找到一个能够执行场景和报告结果的应用程序测试套件。 我想用一些方法来定义/记录场景,并查看哪些场景通过/未通过测试。 我在
3回复

自动Windows UI测试方法

我们正在寻求建立自动化UI测试,并想知道最好的方法是什么,潜在的缺陷是什么,设置成本高昂? 提前致谢。 乙
7回复

如何设置FitNesse以与.NET一起使用?

我正试图在Windows Vista上开始使用FitNesse for .NET。 在我在网上找到的所有教程中,我都被告知要执行run.bat文件,但是在下载最新版本时我得到的只是一个.jar文件。 当我运行它时,文件结构被解压缩,我可以通过浏览http:// localhost到达fitn
1回复

记录对象方法调用以生成自动化测试

我有一个带有大型接口的对象,我想记录在用户会话期间完成的所有方法调用。 理想情况下,此调用序列可以作为源代码使用: 然后,我会将这段代码转换为一个测试用例,以进行一种自动烟雾/负载测试。 WCF负载测试可以针对WCF服务执行此操作,而CodedUI测试记录器可以针对UI执行此操作