Were the Canaanites spared to test Israel’s faith (Judges 2:21-22; 3:4) or to teach Israel war (Judges 3:1-2)?
It seems that if we read from Joshua 2:20 through to 3:7, we get a complete and non-contradictory picture of why the Canaanites were spared.
2:20, God was angry with the Israelites, for they were not keeping the Law that was given through Moses.
2:21, God would no longer drive the Canaanites out of the land, because the Israelites were not faithful to Him.
2:22, God would use these nations to test His people; would they obey the word of God or would they be influenced by the nations.
2:23, This is just a summary of what the previous verses tell us. God did not drive the nations out, these are the same nations that were not put out of the land in the days of Joshua.
3:1, Instead of the Israelites seeing God put these nations out, they would have to war against them. Had they been faithful, God would have put them out (2:20-21).
3:2, They were unwilling to pursue faith, so God taught them about war. They would have to battle for the land.
3:3, The people in the land.
3:4, Same as 2:22, and related to 3:2. Ideally, they would obey, and thus be blessed by God against their enemies.
3:5, The people in the land.
3:6, Rather than war against the nations as they ought, the Israelites intermarried.
3:7, Rather than obeying God’s word, they turned to the pagan gods.
There is no contradiction.
A response to 1001 Bible Contradictions.