【发布时间】:2019-06-05 13:42:26
【问题描述】:
在我的项目中,我尝试设置一个测试,在该测试中应该验证是否使用特定参数调用了一个方法。为此,我使用 Mockito 和 Kotlin。
在测试中我使用了一个模拟类。 (publisher) 这个类是rosjava的一部分,包含一个方法publish;
public interface Publisher<T> extends TopicParticipant { //(java)
void setLatchMode(boolean var1);
boolean getLatchMode();
T newMessage();
void publish(T var1);
boolean hasSubscribers();
int getNumberOfSubscribers();
void shutdown(long var1, TimeUnit var3);
void shutdown();
void addListener(PublisherListener<T> var1);
}
当我尝试设定我的期望时:
val publisherMock = mock(Publisher::class.java)
verify(publisherMock, atLeastOnce()).publish(message) // message is underlined with a red color
这不会编译并表示publish 的参数应该属于Nothing! 类。为什么是这样?
【问题讨论】:
-
您在这个流程中使用了一个名为 Nothing 的类吗?
-
不,我认为是指 Kotlin 的 Nothing 类:kotlinlang.org/api/latest/jvm/stdlib/kotlin/-nothing.html
标签: java kotlin mocking mockito ros