LadyForest commented on code in PR #24390:
URL: https://github.com/apache/flink/pull/24390#discussion_r1507195791


##########
flink-connectors/flink-connector-files/src/test/java/org/apache/flink/connector/file/table/FileSystemOutputFormatTest.java:
##########
@@ -104,15 +113,101 @@ void testNonPartition() throws Exception {
                 .containsExactly("a1,1,p1\n" + "a2,2,p1\n" + "a2,2,p2\n" + 
"a3,3,p1\n");
     }
 
+    @ParameterizedTest
+    @ValueSource(booleans = {true, false})
+    void testStagingDirBehavior(boolean shareStagingDir) throws Exception {

Review Comment:
   > Generally speaking, unit tests should be as small as possible to focus on 
the specific aspect of the class contract (in this case 
`FileSystemTableSink#toStagingPath` not returning the same folder twice. This 
test adds quite a bit of extra context here which might make it harder to grasp 
the intention for code readers. What's your opinion on that?
   
   +1 with your perspective on unit testing. As I previously mentioned, in this 
case, constructing a UT is quite challenging, which subtly suggests to me that 
there may be some design issues with the current code. Take the staging dir, 
for example, if it needs to be passed from the `FileSystemTableSink` to the 
`OutputFormat` at compile-time, then a proper validation should be done here. 
Conversely, perhaps the `OutputFormat` could decide on the stagingDir itself, 
which would make the testing more targeted.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to