我试图模拟一个界面.
public interface FlowCopyParamsBusinessManager {
List<FlowCopyParams> findByAppli(String application, String sourcePattern)
throws FlowCopyParamsBusinessException;
Run Code Online (Sandbox Code Playgroud)
}
在我的代码中,当我调用此方法findByAppli时,我想返回一个FlowCopyParams列表.
List<FlowCopyParams> lstFlowCopyParams = flowCopyParamsBusinessManager.findByAppli(
"TOTO","TATA);
Run Code Online (Sandbox Code Playgroud)
在这里我尝试了类测试:
@BeforeClass
public static void mockBeanIn() throws Exception {
List<FlowCopyParams> flowCopyParamsList = new ArrayList<>();
PowerMockito.spy(FlowCopyParamsBusinessManager.class);
PowerMockito.when(FlowCopyParamsBusinessManager.class, "findByAppli", Mockito.anyString(), Mockito.anyString()).thenReturn(flowCopyParamsList);
}
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
java.lang.IllegalArgumentException: object is not an instance of declaring class
Run Code Online (Sandbox Code Playgroud)
我不知道为什么因为方法findByAppli必须有两个字符串参数,我把Mockito.anyString()和我仍然有IllegalArgumentException.
任何线索?
Thxs.
我想从路线中捕捉所有异常.
我添加了这个OnExeption:
onException(Exception.class).process(new MyFunctionFailureHandler()).stop();
Run Code Online (Sandbox Code Playgroud)
然后,我创建了类MyFunctionFailureHandler.
public class MyFunctionFailureHandler implements Processor {
@Override
public void process(Exchange exchange) throws Exception {
Throwable caused;
caused = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class);
exchange.getContext().createProducerTemplate().send("mock:myerror", exchange);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不起作用,我不知道为什么.
如果有异常,程序必须停止.
我怎么知道为什么这段代码不起作用!!
谢谢.
我有这个例子,我不明白为什么java允许使用没有实现它的接口来构建obj.
public interface Interface {
public void whoIam();
}
public class SuperClass {
}
public class SubClass extends SuperClass implements Interface {
public void whoIam() {
System.out.println("I M a SubClass");
}
public static void main(String[] args) {
SuperClass a = new SubClass();
Interface b = new SubClass();
Interface c = (Interface) new SuperClass();
c.whoIam();
}
Run Code Online (Sandbox Code Playgroud)
下面的这一行不应该编译,因为SuperClass没有实现接口:
Interface c = (Interface) new SuperClass();
Run Code Online (Sandbox Code Playgroud)
它将生成"java.lang.ClassCastException:"
所以,我认为有一个原因,编译器允许这一行.
我想知道什么时候我们可以在没有实现它的情况下使用接口转换obj.
Thxs
我使用CMD prestashop 1.7.2.4,当我点击"总用户"时,我有这个错误:
[PrestaShop] Fatal error in module file: /home/lecoindedg/www/app/bootstrap.php.cache:3224
Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function isUsingNewTranslationSystem() on boolean in /home/lecoindedg/www/controllers/admin/AdminModulesController.php:1403 Stack trace: #0 /home/lecoindedg/www/classes/controller/AdminController.php(2849): AdminModulesControllerCore->initModal() #1 /home/lecoindedg/www/classes/controller/Controller.php(186): AdminControllerCore->init() #2 /home/lecoindedg/www/classes/Dispatcher.php(379): ControllerCore->run() #3 /home/lecoindedg/www/admin792ivsbt0/index.php(95): DispatcherCore->dispatch() #4 {main} Next LogicException: Request stack is empty in /home/lecoindedg/www/app/bootstrap.php.cache:3224 Stack trace: #0 [internal function]: Symfony\Component\HttpKernel\HttpKernel->terminateWithException(Object(Symfony\Component\Debug\Exception\FatalThrowableError)) #1 /home/lecoindedg/www/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php(606): call_user_func(Array, Object(Symfony\Component\Debug\Exception\FatalThrowableE
Run Code Online (Sandbox Code Playgroud)
任何线索thxs?
我实现了DTO业务从TomEE到JBoss的迁移。
我有这个实体:
@NamedQueries({
@NamedQuery(name = "common.plagebusiness.plage.getAllPlages", query = "SELECT p FROM Plage p ORDER BY p.plageRgMax, p.plageCReseau") })
@Entity
@Table(name = "PLAGE")
public class Plage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idPlage")
private Integer idPlage;
@Column(name = "rgMin")
private String plageRgMin;
Run Code Online (Sandbox Code Playgroud)
使用此接口:
@Local
public interface PlagePersistenceManager {
public void importPlages(List<DetailFH55> listeEnregDetail) throws PlageBusinessException, ParseException;
}
Run Code Online (Sandbox Code Playgroud)
并执行:
@Stateless(name = "common.plagebusiness.PlagePersistenceManager")
public class PlagePersistenceManagerImpl implements PlagePersistenceManager {
private static final Logger LOGGER = Logger.getLogger(PlagePersistenceManager.class);
@PersistenceContext(unitName = "PlageBusiness")
private EntityManager em;
@Override …Run Code Online (Sandbox Code Playgroud) 我正在使用 intelliJ 运行 junit arquillian 测试。
问题是我的测试适用于 maven 命令,但不适用于 arquillian
mvn package -P=arq-wildlfy-managed
Run Code Online (Sandbox Code Playgroud)
这是我的 pom :
<dependencyManagement>
<dependencies>
<!-- Arquillian BOM (Bill Of Materials). -->
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>${version.org.jboss.arquillian}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!-- JUnit regression testing framework. -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${version.junit}</version>
</dependency>
</dependencies>
</dependencyManagement>
<profiles>
<!-- Arquillian WildFly managed profile -->
<profile>
<id>arq-wildfly-managed</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
<version>${version.org.wildfly}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-test-classes</phase>
<goals> …Run Code Online (Sandbox Code Playgroud) java ×5
apache ×1
ejb-3.0 ×1
esb ×1
hibernate ×1
inheritance ×1
interface ×1
jboss ×1
junit ×1
maven ×1
mockito ×1
onexception ×1
php ×1
powermock ×1
unit-testing ×1