You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Salva (Jira)" <ji...@apache.org> on 2022/04/08 10:48:00 UTC

[jira] [Comment Edited] (FLINK-26845) Document testing guidelines

    [ https://issues.apache.org/jira/browse/FLINK-26845?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17519511#comment-17519511 ] 

Salva edited comment on FLINK-26845 at 4/8/22 10:47 AM:
--------------------------------------------------------

I played with Stateful Functions a bit using the Golang SDK and I could not find anything  related to mocking. So, this is how I tested my functions [~trohrmann] :

```go
package internalimport "github.com/apache/flink-statefun/statefun-sdk-go/v3/pkg/statefun"// StatefunContext wraps the statefun context for mocking// Generate mocks by running "go generate ./mocks/internal/..."//go:generate mockery --name StatefunContext --output "./../../mocks"type StatefunContext interface

{ statefun.Context}

//go:generate mockery --name StatefunStorage --output "./../../mocks"type StatefunStorage interface

{ statefun.AddressScopedStorage}

```

Then you can use the generated mocks just normally...I don't think there is much room for imagination here, what are your thoughts?


was (Author: JIRAUSER287051):
I played with Stateful Functions a bit using the Golang SDK and I could not find anything  related to mocking. So, this is how I tested my functions [~trohrmann] :

```go
package internalimport "github.com/apache/flink-statefun/statefun-sdk-go/v3/pkg/statefun"// StatefunContext wraps the statefun context for mocking// Generate mocks by running "go generate ./mocks/internal/..."//go:generate mockery --name StatefunContext --output "./../../mocks"type StatefunContext interface

{ statefun.Context}

//go:generate mockery --name StatefunStorage --output "./../../mocks"type StatefunStorage interface

{ statefun.AddressScopedStorage}

```

Then you can use the generated mocks just normally...I don't think there is much room for imagination here, what are your thoughts?

> Document testing guidelines
> ---------------------------
>
>                 Key: FLINK-26845
>                 URL: https://issues.apache.org/jira/browse/FLINK-26845
>             Project: Flink
>          Issue Type: Improvement
>          Components: Stateful Functions
>            Reporter: Salva
>            Priority: Minor
>
> As of now, there seems to be not much guidance on how to approach testing. Although it's true [~sjwiesman] that 
> {quote}Unlike other flink apis, the sdk doesn’t pull in the runtime so testing should really look like any other code. There isn’t much statefun specific.
> {quote}
> I think that at the very least testing should be mentioned as part of the docs, even if it is only to stress the above fact. Indeed, as reported by [~trohrmann], there seems that there are already some test utilities in place but they are not well-documented, plus some potential ideas on how to improve on that front
> {quote}Testing tools is definitely one area where we want to improve significantly. Also the documentation for how to do things needs to be updated. There are some testing utils that you can already use today: [https://github.com/apache/flink-statefun/blob/master/statefun-sdk-java/src/main/java/org/apache/flink/statefun/sdk/java/testing/TestContext.java…|https://t.co/WGjyMA510b]. However, it is not well documented.
> {quote}
> Once the overall guidelines are in place for different testing strategies, tests could be added to the examples in the {_}[playground|https://github.com/apache/flink-statefun-playground]{_}.
> {_}Note{_}: Issue originally reported in Twitter: [https://twitter.com/salvalcantara/status/1505834101026267136?s=20&t=Go2IHP6iP4ZmIyVLmIeD3g]



--
This message was sent by Atlassian Jira
(v8.20.1#820001)