我使用猫鼬创建用户架构。
/src/server/models/User.ts:
JavaRDD<String> data = sc.textFile(yourPath);
String header = data.first();
JavaRDD<String> dataWithoutHeader = data.filter(line -> !line.equalsIgnoreCase(header) && !line.isEmpty());
JavaRDD<List<String>> dataAsList = dataWithoutHeader.map(line -> Arrays.asList(line.split(";")));
我尝试测试缺少名称的用户对象的插入,以获取从mongodb返回的错误:
/ src / 测试 /db.spec.ts:
import { model, Schema } from "mongoose";
export const UserSchema = new Schema({
address: {
type: String,
},
email: {
required: true,
type: String,
unique: true,
},
name: {
required: true,
type: String,
unique: true,
},
});
const User = model("User", UserSchema);
export default User;
测试失败,并且出现此错误:
import { MongoMemoryServer } from "mongodb-memory-server";
import mongoose, { Model } from "mongoose";
import { UserSchema } from "../server/models/User";
let mongoServer: MongoMemoryServer;
const opts = {
useCreateIndex: true,
useNewUrlParser: true,
useUnifiedTopology: true,
};
describe("Users", () => {
let User: Model<any>;
beforeAll(async () => {
mongoServer = new MongoMemoryServer();
const mongoUri = await mongoServer.getConnectionString();
const db = await mongoose.connect(mongoUri, opts);
User = db.model("User", UserSchema);
});
afterAll(async () => {
await mongoose.disconnect();
await mongoServer.stop();
});
describe("User Creation", () => {
it("Should returns an error if a name is missing", async () => {
const newUser = new User({
address: "address",
email: "user@gmail.com",
});
const createdUser = await User.create(newUser);
expect(createdUser).toThrow("User validation failed");
});
});
});
我该如何解决?
答案 0 :(得分:0)
根据jest/rejects,我使用拒绝通过了我的测试:
it("Should returns an error if a name is missing", async () => {
const newUser = new User({
address: "address",
email: "user@gmail.com",
});
await expect(User.create(newUser)).rejects.toThrow("Path `name` is required")
});