Tentang pesan itu
Pesan ini, yang bukan merupakan kesalahan, ditampilkan ketika pernyataan gagal, tetapi MiniTest gagal menemukan perbedaan antar objek.
Lihat metode ini.
diff
menjalankan #inspect
pada dua objek dan menjalankan alat diff pada objek tersebut. Jika tidak ada perbedaan, pesan ini ditampilkan.
Pada prinsipnya, Anda ingin dua objek yang tidak sama memiliki keluaran berbeda saat diperiksa. Ini tidak ditulis secara tertulis, dan beberapa kelas di perpustakaan standar Ruby tidak memenuhi properti ini, seperti Time
. Jika menyangkut kelas Anda sendiri, mungkin Anda telah menulis metode #inspect
khusus?
Mengenai Time
, inspeksi hanya menampilkan detik, bukan pecahan, tetapi persamaan melihat pecahan, jadi dua objek waktu mungkin tidak sama tetapi masih terlihat sama ketika diperiksa.
Mengenai Array
, jika objek yang termasuk di dalamnya tidak sama tetapi terlihat sama ketika diperiksa, hal ini akan menyebabkan pesan tersebut ditampilkan.
Jika Anda mendapatkan pesan ini meskipun keluaran pemeriksaan berbeda, berarti ada yang salah dengan alat diff. MiniTest mencoba menebak-nebak tentang alat berbeda mana yang akan digunakan. Anda dapat memeriksa alat diff yang dipilih dengan mencetak MiniTest::Assertions.diff
.
Tentang kesetaraan objek
Jika masalah sebenarnya adalah objek Anda tidak sama dengan yang Anda harapkan, Anda harus melihat bagaimana metode ==
didefinisikan di kelas masing-masing. Implementasi default melihat id objek yang diberikan ke setiap objek saat dipakai, yang mungkin bukan yang Anda inginkan jika misalnya berurusan dengan objek yang mewakili baris database.
person
Jesper
schedule
24.02.2015
result = @service.run
result.must_equal(@users.get_single(1))
Catatan: Saya juga sudah mencoba menegaskan_equal, dan hal yang sama terjadi - person Fabian Silva   schedule 24.02.2015