Validate multiple images using approvaltest
I have a way to generate some images (1. JPG, 2. JPG...) and write them to the file system I want to verify the result of this method with approvaltest The problem is approvals Verify (image) names the received and approved files when naming the test method Therefore, I cannot verify multiple images through one test
How do I validate multiple images in one test?
Solution
You can use namerfactory to change the information attached to the end of the file Proceed to the next test
[TestFixture] class Program { [Test] [UseReporter(typeof(WinMergeReporter))] public void Test1() { var image1 = @"firstImage.png"; var image2 = @"secondImage.png"; NamerFactory.AdditionalInformation = Path.GetFileNameWithoutExtension(image1); ApprovalTests.Approvals.Verify(image1); NamerFactory.AdditionalInformation = Path.GetFileNameWithoutExtension(image2); ApprovalTests.Approvals.Verify(image2); } }
Approval tests creates two files with firstimage and secondimage before ending Refer to the screenshot to clarify:
My object is a string, but for your image, everything is the same You can call approvals. As before Verify (image), but just change additionalinformation as in the example
Note: I do not recommend verifying two images in one test, because if one verification fails – the next verification will not be performed And the approval test cannot connect images and verify them in one step, at least if you do it yourself
Edit: for Java tries to use, located in namerfactory
public static void asMachineSpecificTest(Function0<String> environmentLabeller) { additionalInformation = environmentLabeller.call(); }
And provide the appropriate function, which will return the name of the image