diff --git a/Tests/HTMLSelectorTests.m b/Tests/HTMLSelectorTests.m
index a961ca0..af508a8 100644
--- a/Tests/HTMLSelectorTests.m
+++ b/Tests/HTMLSelectorTests.m
@@ -84,7 +84,10 @@ - (void)testNthParsing
NSArray *nodes = [self.testDoc nodesMatchingSelector:(selectorString)]; \
NSMutableArray *IDs = [NSMutableArray new]; \
for (HTMLElement *node in nodes) { \
- [IDs addObject:(node[@"id"] ?: node.tagName)]; \
+ id object = node[@"id"] ?: node.tagName; \
+ if (object) { \
+ [IDs addObject:(id __nonnull)object]; \
+ } \
} \
XCTAssertEqualObjects(IDs, expectedIDs); \
} while(0)
diff --git a/Tests/HTMLTreeConstructionTests.m b/Tests/HTMLTreeConstructionTests.m
index 8c4bd05..e075798 100644
--- a/Tests/HTMLTreeConstructionTests.m
+++ b/Tests/HTMLTreeConstructionTests.m
@@ -278,8 +278,9 @@ BOOL TreesAreTestEquivalent(id aThing, id bThing)
if (![bThing isKindOfClass:[HTMLDocumentType class]]) return NO;
HTMLDocumentType *a = aThing, *b = bThing;
return (((a.name == nil && b.name == nil) || [a.name isEqualToString:b.name]) &&
- [a.publicIdentifier isEqualToString:b.publicIdentifier] &&
- [a.systemIdentifier isEqualToString:b.systemIdentifier]);
+ b.publicIdentifier != nil && b.systemIdentifier != nil &&
+ [a.publicIdentifier isEqualToString:(NSString * __nonnull)b.publicIdentifier] &&
+ [a.systemIdentifier isEqualToString:(NSString * __nonnull)b.systemIdentifier]);
} else if (arrayLike(aThing)) {
if (!arrayLike(bThing)) return NO;
NSArray *a = aThing, *b = bThing;