Unit Testing w/Mock
Since version 0.10 you can use MkRegion class to mock interaction with DynamoDB without even starting DynamoDB Local:
public class FooTest {
@Test
public void createsAndDeletesItems() {
final Region region = new MkRegion(
new H2Data().with(
"users",
new String[] {"id"},
new String[] {"name", "age"}
)
);
final Table table = region.table("users");
table.put(
new Attributes()
.with("id", 10783)
.with("name", "Jeff Lebowski")
.with("age", 35)
);
MatcherAssert.assertThat(
table.frame().iterator().next().get("name"),
Matchers.equalTo("Jeff Lebowski")
);
}
}H2Data is using H2database for data persistency, that's why you should include these two dependencies to classpath:
<dependency> <groupId>com.jcabi</groupId> <artifactId>jcabi-jdbc</artifactId> <version>0.10</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.175</version> </dependency>