嗨,我试图从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一起使用?
需要 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 …
我正在从一个文件写入另一个文件,并在测试中创建了一个Assert语句,以检查新文件是否等于原始文件,但不确定哪种最佳方法。我尝试过,Assert.Equals但是即使我物理检查了两个文件,它们也都返回失败,并且它们完全相同。
Assert.IsTrue(File.Equals(downloadfile, created), "Files do not match");
Run Code Online (Sandbox Code Playgroud) 这是断言.在什么样的合理情况下它会失败,为什么游戏会检查呢?
这是问题所在: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) 我想知道是否有什么东西可以给我类似于 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) ASSERT_AND_RETURNGoogle Test 中是否有任何宏可以测试某些内容,如果为假,则提出断言并返回一个值?
我正在编写一个python函数来验证来自电子邮件的令牌.在电子邮件中,有一个带有端点的URL.我有两个url参数,即令牌和电子邮件地址.在我的端点我必须检查:
我选择将所有这些检查包装在一个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)
我喜欢我这样做的方式,因为它非常干净.这是一个好习惯吗?这个问题有其他解决方案吗?
我正在编写一个代码生成器,它将接受一个数据表,并使用它将从它在数据表中找到的内容生成样板 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) assert ×10
c# ×2
c++ ×2
python ×2
unit-testing ×2
asp.net-mvc ×1
googletest ×1
groovy ×1
ios ×1
java ×1
map ×1
objective-c ×1
php ×1
pytest ×1
scala ×1
scalatest ×1
sizeof ×1
testing ×1
uitableview ×1
xcode ×1