David P. Baker
David P. Baker
I think it really only matters if/when we are developing on release branches (for patches), which we're not, yet. Right now I think we plan only to develop at head,...
Hi @marcwrobel. Sorry for the delay. I'll look through it today.
Right. That's for implementations of `Subject`. What are you trying to do?
I still don't fully understand why `containsExactlyElementsIn()` doesn't work for that use case. The test is comparing the actual list to an expected list, but only if the sizes have...
I think that's a separate issue. Even if you leave the size check in, you can't update the test so it passes when the local copy intentionally adds an element....
@JakeWharton Would it then read as follows? Does that look better or worse than the explicit `assertThat("hello")` call? ```kotlin "hello".assertThat { isNotEmpty() isEqualTo("hello") } ```
@JakeWharton sure. So I guess the question is which of these seems better, and why? ``` getApi().makeSomeCall().performSomeAction().assertThat { isNotEmpty() isEqualTo("hello") } ``` or ``` assertThat(getApi().makeSomeCall().performSomeAction()) { isNotEmpty() isEqualTo("hello") } ```...
@cpovirk If you're talking about using a scope function on the result of calling `assertThat(foo)`, then I think it has to be `run`, `with`, or `apply`. `let` and `also` would...
> It sounds like `run` (and `with`) could enable the same kind of weirdness as `apply`, arguably only worse: > > ```kotlin > assertThat(foo).run { > doesNotContain("foo") > containsAtLeast("bar", "baz")...
> The `string.assertThat` approach "requires one extension per subject." That's not a problem for core Truth and even ProtoTruth, etc., since we can just add all those extension methods. It's...