3
データベースモデルをテストするためのコードを記述しようとしています。テストフレームワークとデータベースフレームワークの両方で "==="演算子が使用され、テストフレームワークに優先権が与えられています。 1つのメソッドを明示的に使用するにはどうすればよいですか?スカラーが継承しているメソッド名と矛盾します
例:
import org.scalatest.FunSuite
class TestDBModels extends FunSuite{
test("Test DoublePropertyEntry with a few new values") {
Schemas.doubleProperties.deleteWhere(p => (p.id === p.id)))
}
}
エラー:
type mismatch;
found : Option[String]
required: org.squeryl.dsl.ast.LogicalBoolean
Schemas.doubleProperties.deleteWhere(p => (p.===(p.id, p.id)))
ここで重要な点は、暗黙的なdefの暗黙の何かへの上書きです。これにより、スカatestの '==='メソッドの自動使用が無効になります。次に**アサーションとスカラテストの '==='を使いたい場合は、明示的にconvertToEqualizerを呼び出すか、単に「新しいイコライザ」を呼び出すことができます。個人的には、私は、もっと緊急の声を出す(a === b)、あるいはこの場合、 'assert(toEq(a)== = b) '。 –
@LuigiPlingeさんが少し明確に編集しました。 –