因此,我刚接触Apache Kafka,并试图创建一个简单的应用程序,以便可以更好地理解API。我知道在这里已经问过很多这个问题,但是如何清除存储在主题上的消息/记录?
我见过的大多数答案都是用来更改消息保留时间或删除并重新创建主题的。这些对我来说都不是选项,因为我无权访问server.properties文件。我不是在本地运行Kafka,而是在服务器上托管。有没有可能用Java代码或其他方式做到这一点?
我存根我的存储库时遇到问题。建议我只创建另一个application.properties(我尚未完成),并使用内存数据库(例如H2)。我想知道是否可以仅对调用进行存根处理,以便在调用myDataService.findById(id)而不是尝试从数据库中获取它时,可以返回模拟对象吗?
一般来说,我是为单元测试和Spring Boot编写模拟游戏的新手,所以也许我错过了一些东西。以下代码(为简化起见,使名称通用,可在此处发布)。
我的考试课
public class MyServiceImplTest
{
private MyDataService myDataService;
private NyService myService;
private MyRepository myRepository;
@Before
public void setUp() {
myDataService = Mockito.mock(MyDataServiceImpl.class);
myService = new MyServiceImpl(myDataService);
}
@Test
public void getById_ValidId() {
doReturn(MyMockData.getMyObject()).when(myDataService).findById("1");
when(myService.getById("1")).thenReturn(MyMockData.getMyObject());
MyObject myObject = myService.getById("1");
//Whatever asserts need to be done on the object myObject
}
}
Run Code Online (Sandbox Code Playgroud)
用于对数据层进行服务调用的类
@Service
public class MyServiceImpl implements MyService {
MyDataService myDataService;
@Autowired
public MyServiceImpl(MyDataService myDataService) {
this.myDataService = myDataService;
}
@Override
public MyObject getById(String id) {
if(id == …Run Code Online (Sandbox Code Playgroud)