我有一个方法,如果名称与正则表达式匹配,则必须返回true,如果名称具有特殊字符或数字,则必须返回null。
这是方法:
@SuppressWarnings("null")
public boolean containsSpecialCharacters(String text) {
Pattern p = Pattern.compile("/^[a-zA-Z\\s]+$/");
//check if the name has special characters
Matcher m = p.matcher(text);
boolean b = m.find();
//cast the null to boolean
Boolean boolean1 = (Boolean) null;
if (m.matches()) {
return true;
}
else {
return boolean1;
}
}
这是对无法通过的方法的测试:
@Test
public void parseBeanCheck() throws NumberFormatException, IOException, SAXException, IntrospectionException {
IngenicoForwardingHelper helper = new IngenicoForwardingHelper();
String test1 = "Steve Jobs";
Assert.assertTrue(helper.containsSpecialCharacters(test1));
//This should return Null
String test2 = "Steve Jobs1";
Assert.assertNull(helper.containsSpecialCharacters(test2));
//This should return Null
String test3 = "Steve Jöbs";
Assert.assertNull(helper.containsSpecialCharacters(test3));
}
您可能应该将特殊字符检查简化为以下内容:
public boolean containsSpecialCharacters(String text) {
Pattern p = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(text);
return m.find();
}
并在测试中使用< code>Assert.assertTrue和< code>Assert.assertFalse
您的方法返回一个boolean
,这是一种只允许值true
和false
的原始类型。它不允许null
,因此您的assertNull()
测试将永远不起作用!
您可以更改方法签名以改为返回布尔值
,但通常最好避免从方法返回 null
(如果可能)。无论如何,返回真
值或假
值比真
值或空值
更有意义。
在Java中,正则表达式不需要(也不应该)在开始和结束处使用斜杠。
您可以将代码更改为如下形式:
public boolean containsSpecialCharacters(String text) {
Pattern p = Pattern.compile("^[a-zA-Z\\s]+$");
Matcher m = p.matcher(text);
return !m.matches();
}
或者更简单地说:
public boolean containsSpecialCharacters(String text) {
return !text.matches("[a-zA-Z\\s]+");
}
测试如下:
@Test
public void parseBeanCheck() throws NumberFormatException, IOException, SAXException, IntrospectionException {
IngenicoForwardingHelper helper = new IngenicoForwardingHelper();
Assert.assertFalse(helper.containsSpecialCharacters("Steve Jobs"));
Assert.assertTrue(helper.containsSpecialCharacters("Steve Jobs1"));
Assert.assertTrue(helper.containsSpecialCharacters("Steve Jöbs"));
}
值得一提的是,< code>\s不仅匹配空格,还匹配制表符、换行符、回车符等。所以要确定那是你想要的。
Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。
英文原文:http://emberjs.com/guides/testing/unit/ 单元测试用于测试代码的一个小片段,确保其功能正常。与集成测试不同,单元测试被限定在一个范围内,并且不需要Ember应用运行。 全局 vs 模块 过去如果没有作为一个全局变量加载整个Ember应用,要对应用进行测试非常困难。通过使用模块(CommonJS,AMD等)来编写应用,可以只加载被测试的部分,而不用将其
问题内容: 在Python框架中,如果没有引发异常,是否有一种方法可以通过单元测试,否则会因AssertRaise而失败? 问题答案: 如果我正确理解了您的问题,则 可以 执行以下操作: …假设您有一个相应的测试,可以正确地针对无效输入进行测试,当然: 但是,正如评论中指出的那样,您需要考虑 实际 测试的内容。像…这样的测试可能 …更好,因为它测试系统所需的行为,如果一个异常失败 的 提高。
单元测试涉及测试软件应用程序的每个单元或单个组件。这是第一级软件测试。单元测试的目的是验证单元组件的性能。 单元是软件系统的单个可测试部分,并在应用程序软件的开发阶段进行测试。 此测试旨在测试隔离代码的正确性。单元组件是应用程序的单独功能或代码。白盒测试方法用于单元测试,通常由开发人员完成。 在测试级别层次结构中,单元测试是在集成和其他剩余测试级别之前完成的第一级测试。它使用模块进行测试,减少了等
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如 C 语言中单元指一个函数,Java 里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进
我们从 Hello World 项目入手,增加单元测试功能。 我们新家了一个名为hello-world-test的 Gradle 项目。 环境 Gradle 3.4.1 Spring Boot 1.5.2.RELEASE Thymeleaf 3.0.3.RELEASE Thymeleaf Layout Dialect 2.2.0 Spring Security Test 4.2.2.RELEASE