我正在为Scala Play应用程序编写单元测试套件,我想知道是否有任何类似于Java的
Selenium.Chrome.WebDriver 2.40
Selenium.WebDriver 3.13
Selenium.Support 3.13
Google Chrome 57.0.2987.98
用于自动模拟带注释的类,并在每次测试后将其重置
目前我正在争取
@Mock
private Foo foo;
@Autowired/InjectMocks
private Bar fixture;
@BeforeMethod
public void setUp() {
MockitoAnnotations.initMocks(this);
}
在scala测试中粗略尝试使用java注释失败。我目前的方法可行,我只想确保没有更好的方法。
答案 0 :(得分:2)
mockito-scala从版本0.1.1开始解决此问题,因为它提供了特征(org.mockito.integrations.scalatest.ResetMocksAfterEachTest
),该特征有助于在每次测试运行后自动重置任何现有的模拟
必须先在之后 org.mockito.MockitoSugar
混合特征,否则测试将无法编译
所以您的代码看起来像这样
TestClass extends PlaySpec with MockitoSugar with ResetMocksAfterEachTest
private val foo = mock[Foo]
override def fakeApplication(): Application =
new GuiceApplicationBuilder().overrides(bind[Foo].toInstance(foo)).build
主要优点是不必记住手动重置每个模拟游戏...
如果出于某种原因,您想要使用该特征时不会自动重置的模拟,则应该
是通过org.mockito.MockitoSugar
的伴随对象创建的,因此无法通过此机制进行跟踪
免责声明:我是该库的开发人员