我想使用断言在rake任务中引发错误.
the_index = items.index(some_item)
assert_not_nil the_index, "Lookup failed for the following item: " + some_item
Run Code Online (Sandbox Code Playgroud)
我得到undefined method assert_not_nil.我可以在我的rake任务中包含断言文件吗?怎么样?
这是最佳做法,还是有更好的方法来做到这一点?
在Ruby 1.9.2中工作.
我试图找到一些关于如何在 OS X 上以编程方式使用电源断言的示例代码或示例或良好的文档。Mountain lion 似乎会在系统睡眠时终止网络访问,因此 Apple 建议使用电源断言来保持系统唤醒并保持网络访问可用。修改电源断言的适当命令是 pmset,但是我没有找到任何有关如何使用它的示例。顺便说一句,Snow Leo 和 Lion 似乎没有这个问题,所以我猜这一定是 Mountain Lion 引入的一些功率优化设置。任何有关如何以编程方式为应用程序设置电源断言的代码示例/示例/文档都将受到热烈欢迎。
是否可以使用 Chai 断言库测试某个数组中包含的值?
例子:
var myObject = {
a : 1,
b : 2,
c : 3
};
var myValue = 2;
Run Code Online (Sandbox Code Playgroud)
我需要做这样的事情(但它不起作用):
expect(myObject).values.to.contain(myValue);
//Error: Cannot read property 'to' of undefined
expect(myObject).to.contain(myValue);
//Error: Object #<Object> has no method 'indexOf'
Run Code Online (Sandbox Code Playgroud)
我该如何测试?
所以我试图将mocha配置为我正在处理的javascript项目的测试框架,并且我遇到了一个奇怪的事实,即你必须使用一个单独的断言框架.关于断言的Mocha文档声明它可以用于任何断言框架,这是一个值得称赞的目标,但为什么它不提供任何内置的断言方法?我只是很难想到你想要一个测试框架的任何用例,但没有办法通过或未通过测试.
我在 Swift 中测试了断言,但我有点困惑。你能解释一下assert,assertionFailure和fatalError函数之间的区别吗?
我知道@noreturn属性(由 Seven Oglesby很好地解释了),但我不明白,这些函数什么时候被评估,什么时候被忽略。
函数assert并且fatalError仅在调试模式下发生,我测试了这种行为,这是真的。但assertionFailure也会在发布配置中停止程序。在文档中保持:
发生致命错误,程序执行应在调试模式下停止。在优化的构建中,这是一个 noop。
然后我不明白,为什么不忽略在非调试模式下对该方法的评估。有没有人有任何经验?
我写了一个模拟矩阵的代码。这个矩阵有一个指向指针的指针,实际上它是一个链表数组。我有两个 - 一个用于行,第二个用于列。每个数组索引其矩阵行/列的第一位,列表是 rox/col 中的其余数字。
我可以发送代码,但它不短。
我的问题是,在我做了一些操作之后,我试图在最后删除矩阵 - 它向我弹出了这个失败的问题。我尝试更改我的代码,发现问题出在这里:
delete this->rowsArray;
this->rowsArray = newRowArray; ->here
delete this->colsArray;
this->colsArray = newColArray; ->here
Run Code Online (Sandbox Code Playgroud)
rowsArray 和 colsArray 像这样初始化:
rowsArray = new matrixNode*[lastRowPlace+1];
colsArray = new matrixNode*[lastColPlace+1];
关于 newColsArray 和 row 也是如此...我希望你能给我一个建议,因为我真的不知道该怎么做:(
**只是忘了说问题就在析构函数处出现......
我不知道之间的差别stopifnot()和assertError()有:
assertError()默认情况下未找到(您必须首先加载“工具”包),但是stopifnot()。
更重要的是, assertError() 总是会抛出错误消息,即使我传递了像TRUEor 之类的参数FALSE,而stopifnot()做明显和预期的事情。
阅读手册页没有帮助。而不是的正确用法是assertError(length(x) != 7)什么?如果x未定义,则语句不会产生错误,但是一旦定义,就会产生错误,与长度x(7 与否)无关。
如何实现以下目标:
List<Data> streams = new ArrayList<>();
assertThat(streams).usingFieldByFieldElementComparatorIgnoringGivenFields("createdOn").containsOnly(data1, data2);
Run Code Online (Sandbox Code Playgroud) 究竟什么是"断言",或者更具体地说,我如何摆脱错误.当我创建一个指向带有数据成员int x的类的指针向量,然后执行以下操作:
for(I=antiviral_data.begin();I<antiviral_data.end();I++)
{
if((*I)->x>maxx)
{
antiviral_data.erase(I);
}
}
Run Code Online (Sandbox Code Playgroud)
并运行该程序,我得到没有错误,直到x大于maxx并且我使用.erase(),此时我收到此错误:
调试断言失败!
程序:...我的文档\ O.exe文件:... include\vector行:116
表达式:("this - > _ Has_container()",0)
有关程序如何导致断言失败的信息,请参阅有关断言的Visual C++文档.
(按"重试"调试应用程序)
[中止] [重试] [忽略]
另外,如果我尝试使用cout:
cout<<(*antiviral_data.begin())->x<<endl;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
调试断言失败!
程序:...我的Documents\O.exe文件:... include\vector Line:98
表达式:矢量迭代器不可分辨
有关程序如何导致断言失败的信息,请参阅有关断言的Visual C++文档.
(按"重试"调试应用程序)
[中止] [重试] [忽略]
有人可以告诉我为什么我不能使用向量中的任何数据,以及如何解决它?
另外:antiviral_data是指针的向量,只有一个元素:
antiviral_data.push_back(new aX1(player.x,player.y,'>'));
Run Code Online (Sandbox Code Playgroud)
如果这有帮助.
我正在尝试使用unittest模块测试某个函数是否不会抛出任何异常.这可能吗?我只知道assertRaises方法,但这只是测试抛出异常,而None参数不适用于Exception类型参数...
有任何想法吗?