assertMultilineEquals

Asserts that two multiple-line strings are equal, with a more detailed error message than the yes/no of the built-in assert().

pure @safe
void
assertMultilineEquals
(
const(char[]) actual
,
const(char[]) expected
,
const string file = __FILE__
,
const uint line = __LINE__
)

Parameters

actual const(char[])

Actual string.

expected const(char[])

Expected string.

file string

File name to report in the error message.

line uint

Line number to report in the error message.

Examples

1     import std.exception : assertNotThrown, assertThrown;
2     import core.exception : AssertError;
3 
4     {
5         enum actual =
6 "abc
7 def
8 ghi
9 jkl
10 mno
11 pqr";
12 
13         enum expected =
14 "abc
15 def
16 ghi
17 jkl
18 mnO
19 pqr";
20 
21         assertThrown!AssertError(actual.assertMultilineEquals(expected));
22 
23         /*
24         core.exception.AssertError@source/lu/assert_.d(123):
25         Line mismatch at source/lu/assert_.d:147, block 5:3; expected 'O'(79) was 'o'(111)
26         expected:"mnO"
27           actual:"mno"
28                     ^
29          */
30     }
31     {
32         enum actual =
33 "lorem ipsum
34 sit amet
35 consectetur
36 adipiscing";
37 
38         enum expected =
39 "lorem ipsum
40 sit amet
41 consectetur";
42 
43         assertThrown!AssertError(actual.assertMultilineEquals(expected));
44 
45         /*
46         core.exception.AssertError@source/lu/assert_.d(118):
47         Line mismatch at source/lu/assert_.d:169, block 4:1; expected EOL was 'a'(97)
48         expected:""
49           actual:"adipiscing"
50                   ^
51          */
52     }
53     {
54         enum actual =
55 "i thought what I'd do was
56 I'd pretend
57 I was one of those deaf-mutes";
58 
59         enum expected = actual;
60         assertNotThrown!AssertError(actual.assertMultilineEquals(expected));
61     }