标签: assertions

Ajax驱动的JavaScript运行时断言框架

在使用越来越多的JavaScript代码处理更大的Web应用程序时,我们就如何提高代码质量进行了头脑风暴会议.

最初的想法之一是引入单元测试.这将是一个长期目标; 但是,这不会解决最常见的回归原因:更改DOM和浏览器特定问题.

单元测试在模拟的无DOM环境中运行,不在页面上.

我正在寻找的是一个断言框架,可以插入代码中,如下所示:

var $div = $("div.fooBarClass");
assertNotEmpty($div);
$div.fooBarAction();
Run Code Online (Sandbox Code Playgroud)

我发现断言框架可以做到这一点,但它们都可以登录控制台或进入DOM或打开一个愚蠢的弹出窗口.这些都不与(数千个)自动化测试一起工作. 我正在寻找的是一个运行时断言框架,它通过AJAX记录失败的断言!理想情况下,它应该是:

  • 内置了常见的断言.
  • 与JQuery模块,闭包集成.
  • 记录(通过Ajax)断言,文件名,页面,行号,失败原因,环境的一些预先配置的变量(浏览器,发行版本等).
  • 在出现故障时支持回调.(如果任何断言框架可以执行此操作,我很乐意写入回调来执行Ajax部分.)
  • 适用于所有浏览器.
  • 从生产版本中排除的微不足道.
  • 维护代码库.

javascript testing automated-tests unit-testing assertions

11
推荐指数
1
解决办法
504
查看次数

目标C - 如何以编程方式停止执行调试,同时允许继续?

我已经成功地使用目标C中的标准NSAssert(condition_which_should_evaluate_true,@"错误消息")语句,并在断点导航器中添加"所有异常"断点,以编程方式指定条件时,使我的调试版本停止执行.

好又好,但是大多数时候我在调试时,我还希望在那之后继续正常的程序执行.在断言失败后继续执行该程序有助于追踪混淆/错误的来源.至少就我记得在不同平台上编程时的情况而言.

在Objective C开发中是否有标准的方法可以做到这一点?

breakpoints objective-c assertions continuation

11
推荐指数
1
解决办法
7372
查看次数

UICollectionView:断言失败 - [UICollectionView _endItemAnimations]

我在我的应用中收到此错误:

***断言失败-[UICollectionView _endItemAnimations],/ SourceCache/UIKit/UIKit-2372/UICollectionView.m:2801

它出现在我的-controllerDidChangeContent:方法中:

[self.collectionView performBatchUpdates:^{...}];
Run Code Online (Sandbox Code Playgroud)

有谁知道是什么原因造成的?我的代码基于https://gist.github.com/4440c1cba83318e276bb,我很茫然.

谢谢!

assertions ipad ios ios6 uicollectionview

11
推荐指数
2
解决办法
7065
查看次数

Chai等断言库如何在不强制调用函数的情况下工作?

Chai,您可以执行以下操作:

expect({}).to.exist;
Run Code Online (Sandbox Code Playgroud)

exist不是函数调用,但这仍然适用于测试框架.反向(expect({}).to.not.exist)导致测试失败,但同样,exist不是函数调用.

这些断言如何在不让我调用函数的情况下工作?事实上,如果我试图说expect({}).to.exist()测试失败,因为exist它不是一个函数.

javascript assert function assertions chai

11
推荐指数
1
解决办法
398
查看次数

11
推荐指数
1
解决办法
788
查看次数

OR条件的流畅断言

我正在尝试为以下条件设置流畅的断言.但是找不到带有表达式的方法或带有Or()的ObjectAssertion.

我得检查我的服务状态是枚举值Pending还是Active

services.Should().HaveCount(totalServices).And.BeOfType<Service>().Which.ServiceStatusKey.Should().Be(Status.Pending);
Run Code Online (Sandbox Code Playgroud)

我想要的东西,

.Be(Status.Pending).Or().Be(Status.Active)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我实现这一目标.

FluentAsserstions版本:4.1.1(Nuget的最新内容)附加4.1 FluentAssertions.Primitive命名空间.

 // Decompiled with JetBrains decompiler
// Type: FluentAssertions.Primitives.ObjectAssertions
// Assembly: FluentAssertions.Core, Version=4.1.1.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a
// MVID: 090116C5-E9A5-4878-B62E-DE0EBFEBBE14
// Assembly location: C:\RA\P4V\BOSS\trunk\M5Portal\packages\FluentAssertions.4.1.1\lib\net45\FluentAssertions.Core.dll

using FluentAssertions;
using FluentAssertions.Common;
using FluentAssertions.Execution;
using System;
using System.Diagnostics;

namespace FluentAssertions.Primitives
{
  /// <summary>
  /// Contains a number of methods to assert that an <see cref="T:System.Object"/> is in the expected state.
  /// 
  /// </summary>
  [DebuggerNonUserCode]
  public class ObjectAssertions : ReferenceTypeAssertions<object, ObjectAssertions>
  {
    /// <summary>
    /// Returns the …
Run Code Online (Sandbox Code Playgroud)

c# fluent assertions fluent-assertions

11
推荐指数
2
解决办法
3437
查看次数

如何让Clojure尊重`*assert*`变量?

我理解Clojure的*assert*变量可以用来关闭断言,但我做的事似乎没有用.

(defn foo [a]
  {:pre [(pos? a)]}
  (assert (even? a))
  [a])

(binding [*assert* false]
  (foo 1))
!! exception

(binding [*assert* false]
  (foo -2))
!! exception
Run Code Online (Sandbox Code Playgroud)

甚至false在定义时绑定也有同样的问题:

(binding [*assert* false]
  (defn bar [a]
    {:pre [(pos? a)]}
    (assert (even? a))
    [a]))

(bar 1)
!! execption
Run Code Online (Sandbox Code Playgroud)

然后甚至直接设置变量也不起作用.

*assert*
is true

(alter-var-root (var *assert*) not)
*assert*
is still true
Run Code Online (Sandbox Code Playgroud)

(var-set (var *assert*) false)
*assert*
is still true
Run Code Online (Sandbox Code Playgroud)

所以现在我不明白该怎么做.我很迷惑.

谢谢.

clojure assertions

10
推荐指数
1
解决办法
1267
查看次数

如何在R中进行断言?

是否建议使用RUnit的check*函数来创建前置条件/​​后置条件语句,或者在性能或其他方面有一些问题吗?

unit-testing r assertions

10
推荐指数
2
解决办法
1674
查看次数

Q_ASSERT发布构建语义

在发布版本下,我无法找到关于Q_ASSERT语义的明确声明.如果没有断言检查,那么断言的表达式是否被评估?

请考虑以下代码

Q_ASSERT(do_something_report_false_if_failed());
Run Code Online (Sandbox Code Playgroud)

do_something_report_false_if_failed()在所有潜在的Qt构建配置下运行?相反,它会更安全(即使更冗长,更不易读):

bool is_ok = do_something_report_false_if_failed();
Q_ASSERT(is_ok)
Run Code Online (Sandbox Code Playgroud)

后一种方法的缺点是ASSERT故障不那么冗长,但是可能更清楚地表明该语句是执行的?

c++ qt assertions

10
推荐指数
2
解决办法
7803
查看次数

使用Jasmine检查两个边界(在匹配器之间)

在Jasmine,有toBeGreaterThantoBeLessThan匹配.

如果我想检查特定范围内的整数值怎么办?toBeInBetween匹配器有什么吗?

目前,我可以通过两个单独的expect调用解决它:

var x = 3;

expect(x).toBeGreaterThan(1);
expect(x).toBeLessThan(10);
Run Code Online (Sandbox Code Playgroud)

javascript testing assertions jasmine jasmine-matchers

10
推荐指数
1
解决办法
3588
查看次数