我想用ScalaTest和FunSpec测试风格来测试骆驼代码。
要做到这一点,我需要同时扩展FunSpec和CamelTestSupport。但是,这两个类都是类,为了在Scala中实现这一点,至少需要有一个特性。例如,这不起作用:
class MySpec extends FunSpec with CamelTestSupport {}注意:许多在线引用FunSpec似乎表明它是一个特性,但它是一个类,在scalatest_2.11-3.0.0-M15中。
如何使用ScalaTest FunSpec测试骆驼?
使用JUnit编写的相同测试如下所示:
public class DataLakeEventListenerRouteIT extends CamelTestSupport {
@Autowired
private MyRouteBuilder myRouteBuilder;
private MockEndpoint myEndpointMock;
@Override
public boolean isUseAdviceWith() {
return true;
}
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
//do some required bindings here
return registry;
}
@Before
public void startup() throws Exception {
AdviceWithRouteBuilder mock = new AdviceWithRouteBuilder() {
public void configure() throws Exception {
mockEndpointsAndSkip(myRouteBuilder.MY_ROUTE_URI);
}
};
context.addRoutes(myRouteBuilder);
context.getRouteDefinition(myRouteBuilder.MY_ROUTE_ID)
.adviceWith(context, mock);
myEndpointMock = getMockEndpoint(
"mock:" + myRouteBuilder.MY_ROUTE_URI);
}
@Test
public void timerRouteShouldSendMessage() throws Exception {
// Arrange
context.start();
myEndpointMock.expectedMessageCount(1);
myEndpointMock.assertIsSatisfied();
context.stop();
}
}发布于 2016-09-10 02:10:29
结果却很简单。ScalaTest提供了一种与FunSpec类似的特征,称为FunSpecLike。声明如下所示的测试:
class StoreSVSFileRouteSpec extends CamelTestSupport with FunSpecLike {}https://stackoverflow.com/questions/39420602
复制相似问题