标签: assert

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

Java断言禁用Map.remove()的执行

嗨,我试图从Map中删除对象,我正在使用assert测试此操作

// definition of map 
private Map<String, Map<Long, Object>> groups = new HashMap<String, Map<Long, Object>>();

// this does not remove item from map
assert groups.get("key").remove(id) != null;

// this removes item from map 
groups.get("key").remove(id); 
Run Code Online (Sandbox Code Playgroud)

上述方法在相同数据上进行了测试.为什么Map.remove()不能与assert一起使用?

java assert map

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

需要 py.test 从 python 日志模块记录日志文件中的断言错误

需要 py.test 从 python 日志模块记录日志文件中的断言错误。该测试设置了 python 日志记录模块,所有日志都按预期进行。我在整个测试中使用了断言语句。但是当遇到断言错误时,这些消息不会记录在 python 日志输出中,而是记录在命令控制台中。

有没有办法让 py.test 在测试的日志输出中记录断言错误?

Right now the errors are in command console but it would be great if these assertion errors are also logged as part of python logging output so all the log messages are captured in one place. Also, for long running test, I cannot see the errors until the entire test finish which could be a long time to wait. It would be great if I can see the …

python assert pytest

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

声明语句以比较两个文件是否相等

我正在从一个文件写入另一个文件,并在测试中创建了一个Assert语句,以检查新文件是否等于原始文件,但不确定哪种最佳方法。我尝试过,Assert.Equals但是即使我物理检查了两个文件,它们也都返回失败,并且它们完全相同。

 Assert.IsTrue(File.Equals(downloadfile, created), "Files do not match");
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc unit-testing assert

1
推荐指数
2
解决办法
5823
查看次数

为什么在Doom 3源中有断言(sizeof(bool)== 1)?

这是断言.在什么样的合理情况下它会失败,为什么游戏会检查呢?

c++ assert sizeof

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

iOS 7 上 -[UITableView layoutSublayersOfLayer:] 中的断言失败

这是问题所在:UITableViewController(带有 UITableView),当没有行时,我想在上面显示“无内容”标签。

适用于 iOS 8.x在 iOS 7.1 上崩溃(断言失败)。

-[UITableView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2935.137/UIView.m:8794 中的断言失败

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“执行 -layoutSubviews 后仍需要自动布局。UITableView 的 -layoutSubviews 实现需要调用 super。

全栈:

*** Assertion failure in -[UITableView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2935.137/UIView.m:8794
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. UITableView's implementation of -layoutSubviews needs to call super.'
*** First throw call stack:
(
    0   CoreFoundation                      0x007fb1e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x0057a8e5 objc_exception_throw + 44
    2   CoreFoundation                      0x007fb048 +[NSException raise:format:arguments:] + …
Run Code Online (Sandbox Code Playgroud)

xcode assert objective-c uitableview ios

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

Scala 中类似于 Groovy 的“Power assert”之类的东西?

我想知道是否有什么东西可以给我类似于 Groovy 的 nice power assert 语句的结果。

> assert ["1", '2']*.size() == [2, 3]

Result: Assertion failed: 

assert ["1", '2']*.size() == [2, 3]
                   |      |
                   [1, 1] false
Run Code Online (Sandbox Code Playgroud)

AFAIKscalatest我目前使用的语言和 . 但也许有人可以建议一些辅助图书馆这样做?这是一个宠物项目,所以实验性的和没有得到很好支持的库是可以的。

编辑:我知道匹配器(scalatest 的,甚至是普通的 java hamcrest 匹配器)。我发现他们写起来很冗长,而且他们的输出缺乏细节。

上面的示例显示了中间计算步骤,有助于检测错误。它向您展示了经过测试的代码有什么问题,并提供了更多详细信息。

我希望,引入这种行为需要在运行时获得有关表达式 AST 的信息。但我想,这些信息可以通过使用宏来“烘焙”编译时间。

即,如果我们有表达式assert a + b == cscala(或我正在寻找的一些宏扩展)可以将其重写为:

if (!(a + b == c)) {
  // detailed message is
  // compute a
  // compute b
  // compute a + b
  // compute c
  // compute a + …
Run Code Online (Sandbox Code Playgroud)

groovy assert scala scalatest

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

谷歌测试中的“断言并返回”宏?

ASSERT_AND_RETURNGoogle Test 中是否有任何宏可以测试某些内容,如果为假,则提出断言并返回一个值?

c++ testing assert googletest

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

在普通代码中使用assert

我正在编写一个python函数来验证来自电子邮件的令牌.在电子邮件中,有一个带有端点的URL.我有两个url参数,即令牌和电子邮件地址.在我的端点我必须检查:

  • 如果参数在URL中
  • 如果数据库中有关联令牌
  • 如果它对应于用户电子邮件
  • 如果令牌仍然有效(2天后过期)
  • 如果它已被使用

我选择将所有这些检查包装在一个try except块中,我将始终返回相同的错误"无效令牌",因此我不必精确检查个别错误.我使用了该函数assertFalse,assertEqual如果它不正确,将引发异常.

try:
    # pull from url
    email = request.GET['email']
    value_token = request.GET['token']
    # test if valid
    token = EmailValidationToken.objects.get(token=value_token)
    assertFalse(token.consumed)
    assertEqual(email, token.user.email)
    assertFalse(token.is_expired())
except:
    pass # return error
Run Code Online (Sandbox Code Playgroud)

我喜欢我这样做的方式,因为它非常干净.这是一个好习惯吗?这个问题有其他解决方案吗?

python assert

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

将字符串与从光盘读取的文件进行比较时,Assert.AreEqual 失败

我正在编写一个代码生成器,它将接受一个数据表,并使用它将从它在数据表中找到的内容生成样板 c# 代码。

我正在创建 ac# 代码文件,并将其与代码生成器生成的字符串进行比较。

我从磁盘读取代码文件到一个字符串,并将其与生成的字符串进行比较,并将该字符串作为参数传递给 Assert.AreEqual - 失败。如果我将生成的字符串写出到文本文件并进行比较,文本看起来相同 - 但是文件大小略有不同,并且使用文件比较实用程序,文件末尾似乎有一个额外的大写 ascii 类型字符这是通过我的代码生成器创建的。

关于“upper ascii”字符,如果我将文件与十六进制编辑器进行比较,则在使用 Visual Studio 创建的文件的开头和结尾处有一些额外的十六进制值,这些值在我的应用程序创建的文件中不存在. 开头的那些十六进制值为:“EF BB BF”,末尾的值为:“0D 0A”。

另一个可能解释某些事情的线索:当我将生成的文件添加到 Visual Studio 中的项目时,我看到以下消息:“以下文件中的行尾不一致。是否要规范化行尾? ”

单元测试内容:

    [TestMethod]
    public void TestGenerateBDO()
    {

        const string originalCodePath = @"c:\temp\UnitTestGenerator\BugSource.cs";

        BusinessDomainGenerator generator = 
            new BusinessDomainGenerator(new System.Data.DataTable(), "BugsBDO", "Bug");

        // this adds the body of the text file
        AddTestGenerateBDOCodeLines(generator);

        // I've tried using the 2nd parameter of ReadAllText to pass
        //  different encodings - no difference
        string originalCode = System.IO.File.ReadAllText(originalCodePath);
        string formattedCode …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing assert

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