Comments (3)
Can't this be achieved using during() method? see https://github.com/awaitility/awaitility/wiki/Usage#assert-that-a-value-is-maintained
from awaitility.
In theory, during() would be perfect for checking that a condition is maintained for some time.
In practice, during() also needs a timeout (atMost) and only checks that the condition is maintained for a minimum time during the complete timeout. This behavior is (in my opinion) unexpected, as it does not fail-fast if the condition is false already at the beginning, or changes during any of the polling attempts. For a more complex use case, this behavior makes sense, but for the simple scenario requested here, it doesn't.
I think it could be fixed, by allowing setting the timeout to the same value as the during() duration (and this probably should also be the default behavior for during() without an explicitly set timeout/atMost). Unfortunately this does not work, due to this bug: #186
Also related: #204
In general, my impression is that the current behavior of during() is counter-intuitive (and buggy) and does not allow for the most simple use cases.
from awaitility.
Same here, I want to write some tests that verify a specific condition holds true for a minimum amount of time (and NOT necessarily changes afterward).
Alternative api suggestion:
await()
.during( Duration.ofSeconds(10) )
.holdsTrue( Provider<T>, Predicate<T>);
from awaitility.
Related Issues (20)
- Condition does not get evaluated correctly with small intervals HOT 1
- `atMost` not respected if blocking method used in `until` HOT 1
- Add code examples
- atLeast/during not enforced unless until is declared HOT 2
- Support for `kotlin.time.Duration` in Kotlin DSL HOT 2
- Await AtMost Until - Never Times Out HOT 1
- Feature Request: support assertions in failFast condition HOT 5
- Dynamic reason support for fail fast feature HOT 1
- Direct support for coroutines HOT 3
- fieldIn() used with field in super class generates internal error
- Assert that a method indeed blocks for a while
- Feature proposal: ConditionFactory::messageOnFailure method HOT 1
- Add "isCompleted()" to EvaluatedCondition
- Add Support for java.util.concurrent.CountDownLatch
- await().until(() -> true) fails because the default timeout is not dynamic HOT 1
- how to migrate from 3.x to 4.x HOT 1
- Can i replace ConditionTimeoutException with Assertion error?
- Add getter for Timeout/PollDelay/PollInterval
- Lambda classes can no longer be detected using $$Lambda$
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from awaitility.