Tag: unit testing

Kotlin – Maven不执行测试

所以我有一个我想测试的Kotlin应用程序。 我的测试( .kt )文件,在Eclipse中成功执行。 (测试本身是一个h2 mock jdbc测试)。 现在当运行mvn test -X它说: releases: [enabled => true, update => never] ] [DEBUG] (s) reportFormat = brief [DEBUG] (s) reportsDirectory = C:\Users\Ivar\workspace\anotherworkspace\newrestservice\complete\target\surefire-reports [DEBUG] (f) rerunFailingTestsCount = 0 [DEBUG] (f) reuseForks = true [DEBUG] (s) runOrder = filesystem [DEBUG] (f) shutdown = testset [DEBUG] (s) skip = false [DEBUG] (f) […]

如何在unit testing中处理嘲讽的RxJava2可观察抛出exception

在过去的几个星期里,我一直在Kotlin使用MVP在Android上进行TDD。 事情进展顺利。 我使用Mockito来模拟类,但我似乎无法完成如何执行我想运行的测试之一。 以下是我的测试: 调用API,接收数据列表,然后显示列表。 loadAllPlacesTest() 调用API,接收空数据,然后显示列表。 loadEmptyPlacesTest() 调用API,在路上发生一些exception,然后显示错误信息。 loadExceptionPlacesTest() 我已经成功测试了#1和#2。 问题在于#3 ,我不确定如何在代码中进行测试。 RestApiInterface.kt interface RestApiInterface { @GET(RestApiManager.PLACES_URL) fun getPlacesPagedObservable( @Header(“header_access_token”) accessToken: String?, @Query(“page”) page: Int? ): Observable } RestApiManager.kt实现接口的管理器类如下所示: open class RestApiManager: RestApiInterface{ var api: RestApiInterface internal set internal var retrofit: Retrofit init { val logging = HttpLoggingInterceptor() // set your desired log level […]

Kotlin:在unit testing中使内部函数可见

如果测试与生产代码(这是常见的)在不同的模块中,测试内部函数的可见性最好的方法是什么? 在Java中,我会将生产代码和测试放在同一个包中,并使待测试的包是私有的(另外,如果将其包含为私有的而不是私有的唯一原因,请添加@VisibleForTest注释是测试)。 不幸的是,Kotlin没有包私有的概念。

为什么$ MockitoMock $实例不被识别为模拟?

我使用Kotlin,Mockito和MockitoJRunner运行以下简化测试: open class SomeClassToBeMocked @Inject constructor() { fun map(foo: Foo): Bar {…} } @Mock private lateinit var someMock: SomeClassToBeMocked @InjectMocks private lateinit var subject: Subject @Test fun shouldAssertSomething() { val foo = Foo() // from Foo.kt val bar = Bar() // from Bar.java from *another module* whenever(someMock.map(foo)).thenReturn(bar) // breakpoint[1] subject.myMethod(foo) verify(someMock).map(foo) } 这种模式在代码的其他部分工作,但不是在这个特定的测试中,我得到以下错误信息: org.mockito.exceptions.misusing.MissingMethodInvocationException: when() […]

测试两个目录树的相等性

我正在集成测试我的代码的一部分,在SVN下创建目录树。 这要求我测试一下目录结构和文件是否是我所期望的。 一方面,我有期望的目录树与我想要的文件,另一方面,从SVN文件svn export (喜欢svn export svn co避免.svn噪音)。 但是,有没有可以断言两个目录树的库? 我想到的最后一招是自己做一个迭代比较。 基本上我正在寻找一个API可以接受两个目录,并告诉我,如果他们是平等的或不。 东西在线上 boolean areDirectoriesEqual(File dir1, File dir2)

android数据绑定unit testing错误解析数据绑定编译器选项失败。 PARAMS:

当我尝试为我的kotlin android项目设置unit testing时,遇到以下错误。 以前有没有遇到过这样的问题? 这已被标记为官方错误跟踪器的错误 失败:生成失败,出现exception。 * 什么地方出了错: 执行失败的任务’:app:compileDebugUnitTestJavaWithJavac’。 > java.lang.RuntimeException:无法解析数据绑定编译器选项。 PARAMS: kapt.annotations:/Users/trevor/Dev/Android/workspace/gitlab-example/app/build/tmp/kapt/debugUnitTest/wrappers/annotations.debugUnitTest.txt kapt.kotlin.generated:/ Users / trevor / Dev / Android / workspace / gitlab-example / app / build / tmp / kapt / debugUnitTest / kotlinGenerated *尝试: 运行–info或–debug选项来获得更多的日志输出。 *例外是: org.gradle.api.tasks.TaskExecutionException:对于任务“:app:compileDebugUnitTestJavaWithJavac”,执行失败。 在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84) 在org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55) 在org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) 在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 在org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46) 在org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) 在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 在org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 在org.gradle.execution.taskgraph.DefaultTaskGraphExeter $ $ EventFiringTaskWorker […]

Mockito可以在方法调用时根据它们的值validation参数吗?

我有一个Fooclass,是SUT和一个Barclass,这是它的合作者。 Foo调用在“ expectedList ”作为参数的Bar上run(List values) 。 然后, Foo将会添加更多的元素到这个List这样它的状态将和调用run()时的状态不同。 这是我的测试案例。 @Test public void testFoo() { Bar collaborator = spy(new Bar()); Foo sut = new Foo(collaborator); verify(collaborator).run(expectedList); } 请注意,协作者实际上是间谍对象而不是模拟对象。 这个测试用例将失败,因为即使run()被调用的参数等于expectedList ,它也被修改了,因为它的当前值不再等于expectedList 。 然而,这是它应该工作的方式,所以我想知道是否有方法让Mockito在调用方法时存储参数的快照,并根据这些值而不是最近的值来validation它们。

如何在Intellij中导入目录/完整软件包以进行测试

我正在开发一个有两个分开的目录的项目(比如我们称为cordApp的两个独立的应用程序),在第一个cordapp中我们有“a,b,c”类,第二个是“d,e,f “class。 背后的想法是,第二个cordapp必须比第一个轻得多,因为它必须在网络上旅行,所以第一个的“重量”大于第二个。 我们把测试文件夹放在第一个(更重),但是我也需要测试“打火机”的东西,我怎样才能导入第一个第二个? 现在我的解决方案是在第二个文件夹中创建测试文件夹,但这不是很好,因为它会使文件更重。 任何想法如何导入另一个完整的目录/完整的应用程序? 这是该项目的一张照片,“cordapp-contract-states”是轻的,必须在“cordapp”

运行多个测试(Kotlin)时,只有第一个测试通过TestScheduler,

我试图在Kotlin中使用RxJava在MVP体系结构中测试我的演示者。 我已经创建了一个测试规则,用TestScheduler替换通常的调度程序来测试异步请求: class TestSchedulerRule : TestRule { val testScheduler = TestScheduler() override fun apply(base: Statement, d: Description): Statement { return object : Statement() { @Throws(Throwable::class) override fun evaluate() { RxJavaPlugins.setInitIoSchedulerHandler { testScheduler } RxJavaPlugins.setInitComputationSchedulerHandler { testScheduler } RxJavaPlugins.setInitNewThreadSchedulerHandler { testScheduler } RxJavaPlugins.setInitSingleSchedulerHandler { testScheduler } RxAndroidPlugins.setInitMainThreadSchedulerHandler { testScheduler } try { base.evaluate() } finally { […]

不能在Kotlinunit testing(ExecutionException,Aapt2Exception)

一个简单的测试… import org.junit.Test class KotlinUnitTest { @Test fun test() { assert(true) } } …结果如下… Information:Gradle: Executing tasks: [:app:assembleDebug, :app:assembleDebugUnitTest] Information:Kotlin: Kotlin JPS plugin is disabled Information:Module “app” was fully rebuilt due to project configuration/dependencies changes Information:06/12/2017 5:08 PM – Compilation completed with 3 errors and 0 warnings in 19s 962ms Error:Gradle: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 […]