似乎我的属性测试作为单元测试运行失败,即使它确实通过了。
代码如下:
module Tests.Units
open FsUnit
open NUnit.Framework
open NUnit.Core.Extensibility
open FsCheck.NUnit
open FsCheck.NUnit.Addin
open FsCheck
let add x y = (x + y)
let commutativeProperty x y =
let result1 = add x y
let result2 = add y x // reversed params
result1 = result2
[<Test>]
let ``When I add two numbers, the result should not depend on parameter order``()=
Check.Quick commutativeProperty |> should equal true
要点:
我正在读这个吗?测试名称:当我添加两个数字时,结果不应该依赖 参数顺序
测试FullName:Tests.Units。当我添加两个数字时,结果应该是 不依赖于参数顺序
测试结果:失败
结果StackTrace:at FsUnit.TopLevelOperators.should [a,a](FSharpFunc`2 f,a x,Object y)in d:\ GitHub \ FsUnit \ src \ FsUnit.NUnit \ FsUnit.fs:第44行
在Tests.Units.When我添加两个数字,结果不应该依赖 参数order()
结果消息:预期:是,但是
结果StandardOutput:好的,通过了100次测试。
我错过了什么?
答案 0 :(得分:3)
改为使用$(document).on('submit', '#upload', function(){
/*First, How to handled the dynamic row ?? */
/* Commonly, I use var aVar = $('selector').val(); */
/* Ex, I have two rows, How bout to handle two select option in different row ?*/
$.ajax({
url: 'LINK TO CHECK THE POST if has SUBMITTED',
type: 'POST',
data : {/*dynamic row that will be passed : data*/}
dataType: 'json',
success: function(obj) {
})
return false;
});
:
Check.QuickThrowOnFailure
由于看起来你试图在像NUnit这样的单元测试框架中运行属性,你应该考虑使用其中一个Glue Libraries来进行FsCheck:
这使您可以使用[<Test>]
let ``When I add two numbers, the result should not depend on parameter order``()=
Check.QuickThrowOnFailure commutativeProperty
属性编写属性:
[<Property>]
由于NUnit的可扩展性差的API,你可以使用xUnit.net而不是NUnit来节省很多麻烦。