当有后置条件时,方法的返回值不能为空,可以做什么?
我可以
assert returnValue != null : "Not acceptable null value";
Run Code Online (Sandbox Code Playgroud)
断言可以关闭!
所以可以这样做
if(returnValue==null)
{
throw new NullPointerException("return value is null at method AAA");
}
Run Code Online (Sandbox Code Playgroud)
?
或者,对于这样的条件,使用用户定义的异常(如NullReturnValueException)会更好吗?
我想知道在没有任何"断言"的情况下编写测试是否"正常".因此,只有在发生异常/错误时,测试才会失败.
例如:像具有简单选择查询的测试一样,以确保数据库配置正确.因此,当我更改某些db-configuration时,我会重新运行此测试并检查配置是否正确.?
谢谢!
SessionContext.getBusinessObject()在文档中描述如下,
获取可用于通过给定业务接口调用当前bean的对象.
参数:businessInterface - 此会话Bean的本地业务接口或远程业务接口之一.
返回:与给定业务接口对应的业务对象.
我不能在Java中使用'this'关键字来实现相同的目标吗?这些有何不同?
我有一个无状态会话 bean 和一个作为客户端的独立 Java 程序。当接口被标记为@Remote 时,bean 方法执行得很好。但是,当我用 @Local 而不是 @Remote 标记该接口时,我得到以下异常。
[java] javax.naming.NamingException: Could not dereference object [Root exception is java.lang.RuntimeException: Could not find InvokerLocator URL at JNDIaddress "chapter1/HelloUserBean/local"; looking up local Proxy from Remote JVM?]
Run Code Online (Sandbox Code Playgroud)
但我希望即使是后者也能工作,因为它是执行代码的同一台计算机。
看到这种行为,我假设 Application-Server 和 Standalone-Java-Program 使用不同的 JVM 实例而不是单个 JVM 实例,因此该客户端只能通过远程接口访问。
这个假设正确吗?
谢谢 !
这是我对单元测试时我们视为"单位"的疑问.
说我有这样的方法,
public String myBigMethod()
{
String resultOne = moduleOneObject.someOperation();
String resultTwo = moduleTwoObject.someOtherOperation(resultOne);
return resultTwo;
}
Run Code Online (Sandbox Code Playgroud)
(我为someOperation()和someOtherOperation()单独编写了单元测试
这个myBigMethod()有点像上面那样使用它们集成了ModuleOne和ModuleTwo,
那么,方法"myBigMethod()"仍被视为"单位"吗?
我应该为这个"myBigMethod()"写一个测试吗?
假设我已经为myBigMethod()写了一个测试...如果testSomeOperation()失败,它也会导致testMyBigMethod()失败......现在testMyBigMethod()的失败可能会显示一个不太正确的位置错误.
导致两次测试失败的原因对我来说并不是那么好看.但是,如果有更好的方法,不要...?在那儿 ?
谢谢 !