mock-aerospike
Just use MockAerospikeClient implementation for the interface IAerospikeClient in your unit tests.
Goals
- Lightweight & Embedded
- Easy to use (implements the same interface)
- Reduce effort in unit testing
- Allow extensibility
Issues with IAerospikeClient
Currently, Aerospike provides for IAerospikeClient (in Java) with sole intention of making AerospikeClient testable. However, there are few issues pointed out - https://github.com/aerospike/aerospike-client-java/issues/34
- Don't mock what you don't own (Mocking
IAerospikeClient, then mockingRecord).
Better approach to testing is to create MockAerospikeClient which implements IAerospikeClient, thus avoiding mocking RecordSet and Record itself.
Implementation
MockAerospikeClient implements IAerospikeClient (version - 4.4.9)
Currently, MockAerospikeClient supports the following methods:
- put
- get
- delete
- exists
- getHeader
MockAerospikeClient internally uses a HashMap to store Record corresponding to a Key
Setup
- Maven
- Java 1.8 or greater
Usage
- pom.xml
Add the following dependency to your pom.xml
<dependency>
<groupId>com.github.srini156</groupId>
<artifactId>mock-aerospike-java</artifactId>
<version>0.0.4</version>
</dependency>
- Code
MockAerospikeClient client = new MockAerospikeClient();
//Put entry into Aerospike
client.put(null, new Key("namespace", "set", "key"), new Bin[] { new Bin("bin1", "value1") });
//Fetch entry from Aerospike
client.get(null, new Key("namespace","set","key"));
Contributions
It is currently alpha and WIP. Contributions are welcome, please raise a pull request.