这应该是一个非常简单的问题,我相信。 但不知何故,我无法在Google中find答案。 假设我有2个string列表。 首先包含“stringA”和“stringB” ,第二个包含“stringB”和“stringA” (注意差异顺序)。 我想用JUnit来testing它们是否包含完全相同的string。 是否有任何断言忽略顺序的string的平等检查? 对于给定的例子org.junit.Assert.assertEquals抛出AssertionError java.lang.AssertionError: expected:<[String A, String B]> but was:<[String B, String A]> 解决办法是首先对列表进行sorting,然后将它们传递给断言。 但是我希望我的代码尽可能简单和干净。 我使用Hamcrest 1.3 , JUnit 4.11 , Mockito 1.9.5 。
我有一个unit testing来检查一个方法是否返回正确的IEnumerable 。 该方法使用yield return来构build枚举。 它是一个枚举的类如下: enum TokenType { NUMBER, COMMAND, ARITHMETIC, } internal class Token { public TokenType type { get; set; } public string text { get; set; } public static bool operator == (Token lh, Token rh) { return (lh.type == rh.type) && (lh.text == rh.text); } public static bool operator != […]
在什么情况下,我们应该包括cassert ?
我需要检查一个variables是否是用户types的对象。 用户是我的课$user我的对象 $this->assertInstanceOf($user,User); 这是行不通的,我有一个使用未定义的常量用户 – 假定“用户” 在此先感谢您的帮助
我使用seleniumwebdriver,我怎样才能检查一些文本是否存在或不在页面中? 也许有人推荐我有用的资源,我可以阅读有关它。 谢谢
在使用一个函数时,我希望确保variables的types符合预期。 如何做到这一点? 下面是一个伪装函数的例子,在继续它的angular色之前试图做到这一点: def my_print(begin, text, end): """Print 'text' in UPPER between 'begin' and 'end' in lower """ for i in (begin, text, end): assert isinstance(i, str), "Input variables should be strings" out = begin.lower() + text.upper() + end.lower() print out def test(): """Put your test cases here! """ assert my_print("asdf", "fssfpoie", "fsodf") assert not […]
大量使用unit testing是否会阻止使用debugging断言? 这似乎是一个debugging断言在testing中的代码意味着unit testing不应该存在或debugging断言不应该存在。 “只能有一个”似乎是一个合理的原则。 这是常见的做法吗? 还是你在unit testing时禁用debugging断言,所以他们可以在集成testing? 编辑:我更新了'断言'debugging断言来区分在testing代码中的断言和unit testing中的行,在testing运行后检查状态。 另外这里是一个我相信显示困境的例子:一个unit testing通过一个被保护函数的无效input,声明它的input是有效的。 unit testing是否应该存在? 这不是公共职能。 也许检查input会杀死perf? 还是应该断言不存在? 该function被保护不是私人的,所以它应该检查它的input是否安全。
斯卡拉似乎定义了三种断言: assert , require和assume 。 据我所知, require的区别(与通用断言相比)是专门用于检查input(参数,传入消息等)的。 那么assume的含义是什么?
我从来没有断言的想法 – 你为什么要使用它们? 我的意思是,假设我是公式驱动者,所有的断言都是安全带,头盔等等。 testing(在debugging中)都可以,但现在我们要做赛车(发布)! 我们是否应该放弃所有的安全措施,因为testing时没有问题? 我永远不会删除它们。 我认为大多数声称去掉可比较的断言的人绝不会描述他们的代码或断言是绝对的stream离失所。 我从来没有见过任何真正的性能优势,特别是在80/20规则。 那么,我是不是也错过了这个观点,或者有人可以告诉我,为什么我要使用断言? 顺便说一句,我正在使用unit testing。
我想创build一个SQLselect在MS SQL Server 2005中进行unit testing。基本思想是这样的: select'Test Name',foo ='Result'from bar where baz =(某些标准) 这个想法是,如果“富”列的值是“结果”,那么我会得到一个值为true / 1; 如果不是,我会得到假/ 0。 不幸的是,T-SQL不喜欢expression式; 它在等号上窒息。 是否有某种方法来评估SQLselect列表中的expression式并获得可返回的结果? (或者其他一些实现我想要的unit testing的方法?) 编辑:3伟大的答案,都围绕CASEbuild成。 我会接受这个信号,因为他得到最less的代表,因此最需要它。 :-) 谢谢大家。