2016-05-10 6 views
0

У меня есть a library, в котором я создал a very useful class in src/тест/scala. Как я могу сделать этот класс доступным для пользователей, чтобы они могли использовать этот класс в своих тестах?Развертывание кода в тесте

Если я переношу этот тестовый класс на src/main/scala и разворачиваю его, тогда моя библиотека должна будет иметь структуру тестирования как зависимость.

Если я использую артефакты в тесте, тогда тесты моей библиотеки также будут упакованы, что является глупым, поскольку люди, использующие мою библиотеку, не должны иметь доступ к библиотечным тестам.

+0

Я не уверен, я понимаю, что это вы найдете особенно «полезной» об этом классе, и, особенно, о скалятиве 'Futures', который он использует ... Возможность вызова' f.futureValue', а не 'Await.result (f)' не может быть, может ли это? – Dima

+0

'Await.result' является синхронным, когда ScalaTest' futureValue' является асинхронным. Полезность заключается в том, что мне не нужно переопределять «PatienceConfig». –

+0

Асинхронный? Что ты имеешь в виду? В моей книге, чтобы быть «асинхронным», что-то должно вернуть «Будущее» ... но у вас уже есть «Будущее». Ясно, что для этого термина у вас должно быть какое-то другое значение? – Dima

ответ

2

Просто избавиться от зависимости от scalatest, вам не нужно, что материал:

trait VeryUsefulTrait { 

    implicit class RichExpect[T](expect: Expect[T]) { 
     val timeout = expect.settings.timeout + 1.second 
     def failedFutureValue: Throwable = Await.result(expect.run().failed, timeout) 
     def futureValue: T = Await.result(expect.run(), timeout) 
     def whenReady[U](f: T => U): U = f(Await.result(expect.run(), timeout)) 
    } 
Смежные вопросы